Chicory: A Colorful Tale Wiki
chicorywiki
https://wiki.chicory.pizza/wiki/Main_Page
MediaWiki 1.41.0
first-letter
Media
Special
Talk
User
User talk
Chicory: A Colorful Tale Wiki
Chicory: A Colorful Tale Wiki talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Module
Module talk
Gadget
Gadget talk
Gadget definition
Gadget definition talk
Template:Clear
10
110
231
2022-03-08T14:12:32Z
dev>DarkMatterMan4500
0
Created page with "<div style="clear:{{{1|both}}};"></div><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<div style="clear:{{{1|both}}};"></div><noinclude>
{{documentation}}
</noinclude>
38bab3e3d7fbd3d6800d46556e60bc6bac494d72
Template:Tl
10
18
35
2022-09-30T01:09:19Z
dev>Pppery
0
Redirected page to [[Template:Template link]]
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
fb9a6b420e13178e581af6e7d64274cd30a79017
36
35
2024-02-08T07:28:29Z
Ngyikp
2
1 revision imported from [[:dev:Template:Tl]]
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
fb9a6b420e13178e581af6e7d64274cd30a79017
Template:Template link
10
16
31
2022-09-30T01:10:00Z
dev>Pppery
0
46 revisions imported from [[:wikipedia:Template:Template_link]]
wikitext
text/x-wiki
{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
eabbec62efe3044a98ebb3ce9e7d4d43c222351d
32
31
2024-02-08T07:28:28Z
Ngyikp
2
1 revision imported from [[:dev:Template:Template_link]]
wikitext
text/x-wiki
{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
eabbec62efe3044a98ebb3ce9e7d4d43c222351d
Template:Documentation
10
9
17
2022-09-30T01:43:37Z
dev>MacFan4000
0
4 revisions imported from [[:meta:Template:Documentation]]: this is useful and was on templateiwki
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>[[Category:Templates]]</noinclude>
9885bb4fa99bf3d5b960e73606bbb8eed3026877
18
17
2024-02-08T07:28:24Z
Ngyikp
2
1 revision imported from [[:dev:Template:Documentation]]
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>[[Category:Templates]]</noinclude>
9885bb4fa99bf3d5b960e73606bbb8eed3026877
Template:Tlx
10
19
37
2022-09-30T02:04:32Z
dev>Pppery
0
Redirected page to [[Template:Template link expanded]]
wikitext
text/x-wiki
#REDIRECT [[Template:Template link expanded]]
155e901040104f96908f1f4627c4eb3501301bf9
38
37
2024-02-08T07:28:29Z
Ngyikp
2
1 revision imported from [[:dev:Template:Tlx]]
wikitext
text/x-wiki
#REDIRECT [[Template:Template link expanded]]
155e901040104f96908f1f4627c4eb3501301bf9
Module:Arguments
828
11
21
2022-09-30T02:32:01Z
dev>Pppery
0
24 revisions imported from [[:wikipedia:Module:Arguments]]
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
22
21
2024-02-08T07:28:25Z
Ngyikp
2
1 revision imported from [[:dev:Module:Arguments]]
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Module:Documentation
828
12
23
2022-09-30T02:36:08Z
dev>Pppery
0
Pppery moved page [[Module:Documentation/2]] to [[Module:Documentation]] without leaving a redirect
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
78cc3a78f2b5dbb267fa16027c0800a22dbd3c42
24
23
2024-02-08T07:28:26Z
Ngyikp
2
1 revision imported from [[:dev:Module:Documentation]]
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
78cc3a78f2b5dbb267fa16027c0800a22dbd3c42
Template:En-WP attribution notice/doc
10
82
168
2022-09-30T15:17:56Z
dev>Pppery
0
7 revisions imported from [[:templatewikiarchive:Template:En-WP_attribution_notice/doc]]
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This template is used to provide attribution to Wikipedia from external wikis, as described on [[w:en:Wikipedia:Reusing Wikipedia content#Example notice|Wikipedia:Reusing Wikipedia content]].
=== Usage ===
{{En-WP attribution notice|''page name''}}
The page name should be the name of the Wikipedia page that is being attributed. If no page name is specified, the name of the current page on the local wiki is used.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
5cd6463862f7ea04718d41b3b9aa554927f65c10
Template:En-WP attribution notice
10
81
166
2022-09-30T15:18:52Z
dev>Pppery
0
wikitext
text/x-wiki
<includeonly>{| style="border: 1px solid #e0e0e0; background-color: #f8f8f8; color:black; margin: 5px auto; width: 60%;"
|-
| style="padding: 3px 10px;" | [[File:Wikipedia-logo-v2.svg|30px|Wikipedia logo]]
| style="font-size: 90%; padding: 3px;" | This page uses material from the Wikipedia page [[w:en:{{{1|{{FULLPAGENAME}}}}}|{{{1|{{FULLPAGENAME}}}}}]], which is released under the [[w:en:Wikipedia:Text of Creative Commons Attribution-ShareAlike 3.0 Unported License|Creative Commons Attribution-ShareAlike 3.0 Unported License]] ([https://en.wikipedia.org/w/index.php?title={{urlencode:{{{1|{{FULLPAGENAME}}}}}}}&action=history view authors]).
|}
[[Category:Pages from English Wikipedia]]</includeonly>
<noinclude>
{{documentation}}
{{En-WP attribution notice|Template:En-WP attribution notice}}
</noinclude>
22d054cdfdc01cc48994b02dc0ccde4265694650
Template:Template link expanded
10
17
33
2022-09-30T18:48:13Z
dev>Pppery
0
wikitext
text/x-wiki
<code><nowiki>{{</nowiki>{{#if:{{{subst|}}} |[[Help:Substitution|subst]]:}}<!--
-->[[{{{sister|{{{SISTER|}}}}}}{{ns:Template}}:{{{1|}}}|{{{1|}}}]]<!--
-->{{#if:{{{2|}}} ||{{{2}}}}}<!--
-->{{#if:{{{3|}}} ||{{{3}}}}}<!--
-->{{#if:{{{4|}}} ||{{{4}}}}}<!--
-->{{#if:{{{5|}}} ||{{{5}}}}}<!--
-->{{#if:{{{6|}}} ||{{{6}}}}}<!--
-->{{#if:{{{7|}}} ||{{{7}}}}}<!--
-->{{#if:{{{8|}}} ||{{{8}}}}}<!--
-->{{#if:{{{9|}}} ||{{{9}}}}}<!--
-->{{#if:{{{10|}}} ||{{{10}}}}}<!--
-->{{#if:{{{11|}}} ||{{{11}}}}}<!--
-->{{#if:{{{12|}}} ||{{{12}}}}}<!--
-->{{#if:{{{13|}}} ||{{{13}}}}}<!--
-->{{#if:{{{14|}}} ||{{{14}}}}}<!--
-->{{#if:{{{15|}}} ||{{{15}}}}}<!--
-->{{#if:{{{16|}}} ||{{{16}}}}}<!--
-->{{#if:{{{17|}}} ||{{{17}}}}}<!--
-->{{#if:{{{18|}}} ||{{{18}}}}}<!--
-->{{#if:{{{19|}}} ||{{{19}}}}}<!--
-->{{#if:{{{20|}}} ||{{{20}}}}}<!--
-->{{#if:{{{21|}}} ||''...''}}<!--
--><nowiki>}}</nowiki></code><noinclude>
{{Documentation}}
</noinclude>
9f670205d4b358df089b1a820f78f02a88afca3a
34
33
2024-02-08T07:28:28Z
Ngyikp
2
1 revision imported from [[:dev:Template:Template_link_expanded]]
wikitext
text/x-wiki
<code><nowiki>{{</nowiki>{{#if:{{{subst|}}} |[[Help:Substitution|subst]]:}}<!--
-->[[{{{sister|{{{SISTER|}}}}}}{{ns:Template}}:{{{1|}}}|{{{1|}}}]]<!--
-->{{#if:{{{2|}}} ||{{{2}}}}}<!--
-->{{#if:{{{3|}}} ||{{{3}}}}}<!--
-->{{#if:{{{4|}}} ||{{{4}}}}}<!--
-->{{#if:{{{5|}}} ||{{{5}}}}}<!--
-->{{#if:{{{6|}}} ||{{{6}}}}}<!--
-->{{#if:{{{7|}}} ||{{{7}}}}}<!--
-->{{#if:{{{8|}}} ||{{{8}}}}}<!--
-->{{#if:{{{9|}}} ||{{{9}}}}}<!--
-->{{#if:{{{10|}}} ||{{{10}}}}}<!--
-->{{#if:{{{11|}}} ||{{{11}}}}}<!--
-->{{#if:{{{12|}}} ||{{{12}}}}}<!--
-->{{#if:{{{13|}}} ||{{{13}}}}}<!--
-->{{#if:{{{14|}}} ||{{{14}}}}}<!--
-->{{#if:{{{15|}}} ||{{{15}}}}}<!--
-->{{#if:{{{16|}}} ||{{{16}}}}}<!--
-->{{#if:{{{17|}}} ||{{{17}}}}}<!--
-->{{#if:{{{18|}}} ||{{{18}}}}}<!--
-->{{#if:{{{19|}}} ||{{{19}}}}}<!--
-->{{#if:{{{20|}}} ||{{{20}}}}}<!--
-->{{#if:{{{21|}}} ||''...''}}<!--
--><nowiki>}}</nowiki></code><noinclude>
{{Documentation}}
</noinclude>
9f670205d4b358df089b1a820f78f02a88afca3a
Module:Yesno
828
114
239
2022-10-01T17:25:37Z
dev>Pppery
0
Pppery moved page [[Module:Yesno/2]] to [[Module:Yesno]] without leaving a redirect
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Module:No globals
828
113
237
2022-10-01T17:28:48Z
dev>Pppery
0
Pppery moved page [[Module:No globals/2]] to [[Module:No globals]] without leaving a redirect
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:Documentation/config
828
13
25
2022-10-01T17:37:53Z
dev>Pppery
0
Pppery moved page [[Module:Documentation/config/2]] to [[Module:Documentation/config]] without leaving a redirect
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[w:Wikipedia:Template documentation|documentation]] is [[mw:Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[mw:Extension:Scribunto/Lua reference manual|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
d70e8b1402a2bbe08a1fef4b75d743e661af0c95
26
25
2024-02-08T07:28:26Z
Ngyikp
2
1 revision imported from [[:dev:Module:Documentation/config]]
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[w:Wikipedia:Template documentation|documentation]] is [[mw:Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[mw:Extension:Scribunto/Lua reference manual|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
d70e8b1402a2bbe08a1fef4b75d743e661af0c95
Template:Documentation subpage
10
10
19
2022-10-01T17:51:17Z
dev>Pppery
0
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
'''This is a documentation subpage''' for '''{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br/> It contains usage information, [[mw:Help:Categories|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} | page}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
-->{{#if:{{{inhibit|}}} |<!--(don't categorize)-->
| <includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
471e685c1c643a5c6272e20e49824fffebad0448
20
19
2024-02-08T07:28:25Z
Ngyikp
2
1 revision imported from [[:dev:Template:Documentation_subpage]]
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
'''This is a documentation subpage''' for '''{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br/> It contains usage information, [[mw:Help:Categories|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} | page}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
-->{{#if:{{{inhibit|}}} |<!--(don't categorize)-->
| <includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
471e685c1c643a5c6272e20e49824fffebad0448
Module:Message box
828
111
233
2022-10-21T19:39:49Z
dev>Pppery
0
These can just go, the first for being very Wikipedia-specific, and the second for being almost impossible to import properly
Scribunto
text/plain
-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local templatestyles = 'Module:Message box/styles.css'
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {user = 'tmbox', talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
local function templatestyles(frame, src)
return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} }
.. 'CONFIG_MODULE'
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
be00cd389f9f2afcd361e5d5e33622839555cbd9
Module:Message box/configuration
828
112
235
2022-10-21T22:38:02Z
dev>Pppery
0
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix'},
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}
c6bd9191861b23e474e12b19c694335c4bc3af5f
Template:Uses TemplateStyles
10
109
229
2022-11-07T02:43:20Z
dev>Pppery
0
3 revisions imported from [[:wikipedia:Template:Uses_TemplateStyles]]: Importing this now because the Wikipedia version will fail in a non-obvious way (a problem I caught on another Miraheze wiki)
wikitext
text/x-wiki
<includeonly>{{#invoke:Uses TemplateStyles|main}}</includeonly><noinclude>
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
7e26d8f257e302bd8a3dcbe53f52741ae0884f74
Template:Uses TemplateStyles/doc
10
115
241
2022-11-07T02:47:20Z
dev>Pppery
0
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Categories go at the bottom of this page, and interwikis go on Wikidata. -->
This template is used to show that templates have been converted to use [[mw:Extension:TemplateStyles|TemplateStyles]]. It is placed at the top of the template's /doc page.
== Usage ==
; Basic : {{tlx|Uses TemplateStyles|''TemplateStyles page name''}}
; All parameters : {{tlx|Uses TemplateStyles|''TemplateStyles page 1''|''TemplateStyles page 2''|''TemplateStyles page 3''|...|category{{=}}''custom category''|nocat{{=}}''true''}}
The first TemplateStyles page name is required.
===TemplateStyles sandboxes===
Note that if a sandbox version of the TemplateStyle exists, it will also be linked. This is only for sandbox versions. The subpage name of the sandbox version should be the same, but as a subpage of the templates sandbox. For example, if the TemplateStyles page name is <code>Template:Foo/styles.css</code>, then the sandbox version should be <code>Template:Foo/sandbox/styles.css</code>
== Examples ==
===One style page===
{{tlx|Uses TemplateStyles|Template:Arrowlist/styles.css}}
{{Uses TemplateStyles|Template:Arrowlist/styles.css|nocat=true}}
{{clear}}
===Multiple style pages===
{{tlx|Uses TemplateStyles|Template:Arrowlist/styles.css|Template:Routemap/styles.css}}
{{Uses TemplateStyles|Template:Arrowlist/styles.css|Template:Routemap/styles.css|nocat=true}}
{{clear}}
===Sandbox version of style page exists===
{{tlx|Uses TemplateStyles|Template:Uses TemplateStyles/example.css}}
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}
{{clear}}
===No style pages specified===
{{tlx|Uses TemplateStyles}}
{{Uses TemplateStyles|nocat=true}}
{{clear}}
== TemplateData ==
<templatedata>
{
"description": "Used to show that templates have been converted to use TemplateStyles.",
"format": "inline",
"params": {
"1": {
"label": "Stylesheet 1",
"description": "Name of the main stylesheet used in the template or module. Use multiple parameters to specify multiple stylesheets.",
"required": true,
"type": "wiki-page-name"
},
"2": {
"label": "Stylesheet 2",
"description": "Name of the second stylesheet.",
"type": "wiki-page-name"
},
"3": {
"label": "Stylesheet 3",
"description": "Name of the third stylesheet.",
"type": "wiki-page-name"
},
"4": {
"label": "Stylesheet 4",
"description": "Name of the fourth stylesheet.",
"type": "wiki-page-name"
},
"5": {
"label": "Stylesheet 5",
"description": "Name of the fifth stylesheet.",
"type": "wiki-page-name"
},
"6": {
"label": "Stylesheet 6",
"description": "Name of the sixth stylesheet.",
"type": "wiki-page-name"
},
"7": {
"label": "Stylesheet 7",
"description": "Name of the seventh stylesheet.",
"type": "wiki-page-name"
},
"8": {
"label": "Stylesheet 8",
"description": "Name of the eighth stylesheet.",
"type": "wiki-page-name"
},
"9": {
"label": "Stylesheet 9",
"description": "Name of the ninth stylesheet.",
"type": "wiki-page-name"
},
"10": {
"label": "Stylesheet 10",
"description": "Name of the tenth stylesheet.",
"type": "wiki-page-name"
}
}
}
</templatedata>
<includeonly>
[[Category:Templates]]
</includeonly>
c86681b5a4f99bb6940c1ab54645e0f43131bb4e
Module:Uses TemplateStyles
828
116
243
2022-11-07T02:51:31Z
dev>Pppery
0
Scribunto
text/plain
-- This module implements the {{Uses TemplateStyles}} template.
local mMessageBox = require('Module:Message box')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
return p.renderBox(args)
end
function p.renderBox(tStyles)
local boxArgs = {}
if #tStyles < 1 then
boxArgs.text = '<strong class="error">Error: no TemplateStyles specified</strong>'
else
local tStylesLinks = {}
for i, ts in ipairs(tStyles) do
local sandboxLink = nil
local tsTitle = mw.title.new(ts)
if tsTitle then
local tsSandboxTitle = mw.title.new(string.format('%s:%s/sandbox/%s', tsTitle.nsText, tsTitle.baseText, tsTitle.subpageText))
if tsSandboxTitle and tsSandboxTitle.exists then
sandboxLink = string.format(' ([[:%s|sandbox]])', tsSandboxTitle.prefixedText)
end
end
tStylesLinks[i] = string.format('[[:%s]]%s', ts, sandboxLink or '')
end
local tStylesList = mw.text.listToText(tStylesLinks)
boxArgs.text = 'This ' ..
(mw.title.getCurrentTitle():inNamespaces(828,829) and 'module' or 'template') ..
' uses [[mw:Extension:TemplateStyles|TemplateStyles]]:\n' .. tStylesList
end
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.image = '[[File:Farm-Fresh css add.svg|32px|alt=CSS]]'
return mMessageBox.main('mbox', boxArgs)
end
return p
3c7364ddaba9beb17a73b0f5256cd7fc3b3051f4
Template:Documentation/doc
10
15
29
2022-12-16T04:57:03Z
dev>Pppery
0
/* Usage */
wikitext
text/x-wiki
{{documentation subpage}}
This is the {{tl|Documentation}} template, used on almost every template page to contain that template's documented instructions and information.
For detailed instructions on how and when to use this template, see [[w:Wikipedia:Template documentation]].
This template displays a green documentation box like you are seeing now and automatically loads the content from a /doc subpage. It can also load the content from other places if instructed to.
This template is intended for documenting templates and other pages that are [[w:Wikipedia:Transclusion|transcluded]] onto other pages. It can be used in the [[w:Wikipedia:Template namespace|template namespace]] and most other [[w:Wikipedia:Namespace|namespace]]s.
Use of this template allows templates to be [[w:Wikipedia:Protection policy|protected]] where necessary, while allowing anyone to edit the documentation and categories.
===Usage===
Normally this template is used without any parameters, placed at the bottom of the template or page being documented, within a <noinclude> container:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
</syntaxhighlight>
Then this template automatically loads the content from the /doc subpage of the template it is used on.
This template can also load the content from any other page. Like this:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation |Template:Other page/doc}}
</noinclude>
</syntaxhighlight>
Note that when loading the documentation from a page other than the local /doc page it becomes tricky to handle the categories.
The content can also be fed directly as text. Like this:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation
| content =
(some documentation)
}}</noinclude>
</syntaxhighlight>
When the <nowiki>|content=</nowiki> parameter is used, the doc box normally does not show the [edit] [purge] links in the top right corner. Note that if the /doc page exists, a link to it is still shown in the link box below the doc box.
Parameter <nowiki>|1=</nowiki> and the <nowiki>|content=</nowiki> parameter can also be combined, like this:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation |1=Template:Any page/doc
| content =
{{Template:Any page/doc |parameters}}
}}</noinclude>
</syntaxhighlight>
Then the pagename fed as parameter 1 is used for the [edit] [purge] links and for the /doc link in the link box below the doc box. But the '''content''' parameter is used for the content shown in the doc box. The above code means that the content is transcluded as {{tlx|Any page/doc|parameters}}. In this example a parameter is also fed to the /doc page being loaded.
=== Shortcut ===
To automatically insert the [[w:Wikipedia:Noinclude|noinclude tags]], the template call and the guiding comment, use this [[w:WP:Substitution|substitution]] code:<br>
:<code><nowiki>{{subst:doc-code}}</nowiki></code>
===Best practice===
The code should be added at the bottom of the template code, with no space before <noinclude> (which would cause extra space on pages where the template is used).
Categories that apply to the template itself should be added to the bottom of the /doc subpage, inside <includeonly> tags.
If the documentation page contains <includeonly> or <noinclude> tags as part of the visible documentation text, replace the "<code><</code>" with "<code>&lt;</code>".
===Heading===
When in the Template namespace, this template shows this heading:
:[[File:Test Template Info-Icon - Version (2).svg|32px|link=[[w:Wikipedia:Template documentation]]]] '''Template documentation'''
In most other namespaces, such as "{{SITENAME}}:", it shows this heading:
:'''Documentation'''
But when on File (image) pages it shows this heading:
:'''Summary'''
The '''heading''' parameter can be used to set the heading to something else. Like this:
:<code><nowiki>{{Documentation |heading=Infobox documentation}}</nowiki></code>
If the '''heading''' parameter is empty but defined, no heading is shown and no [edit] [purge] links are shown. Like this:
:<code><nowiki>{{Documentation |heading=}}</nowiki></code>
The '''heading-style''' parameter can be fed optional [[w:Cascading Style Sheets|CSS]] values. Without quotation marks <code>" "</code> but with the ending semicolons <code>;</code>. For example:
:<code>heading-style=font-size:150%;color:red;</code>
===Link box===
Below the big doc box is a small link box that shows some meta-data about the documentation. The link box shows different things depending on what parameters are fed to this template, and in which namespace it is used. In some cases the link box is not shown at all.
To hide the link box, add the parameter
: <nowiki>|link box=off</nowiki>.
You can also insert customised text into the link box, by setting the <nowiki>|link box=</nowiki> parameter. For example:
<pre style="width:auto; overflow:scroll">
|link box=This documentation is automatically generated by [[w:Template:Country showdata]]
</pre>
===Automatic functions===
If the documentation page does not exist, the [create] link includes a [[mw:Manual:Creating pages with preloaded text|preload]] page so that clicking it will pre-fill the edit form with the basic documentation page format. Preload text is also used for the /sandbox and /testcases [create] links.
===Subject namespaces vs. talk namespaces===
Terminology: ''Subject namespaces'' are the opposite of ''talk namespaces''. For instance "Template:" is the subject space of "Template talk:".
This template is usually placed in a subject namespace, within <noinclude> tags. But in some cases this template needs to be on the talk page:
* In the Mediawiki namespace, since <noinclude> often does not work in system messages, and since the Mediawiki namespace needs to be kept clean for performance reasons.
When placed on talk pages, this template usually is placed near the top of the page and without <noinclude> tags.
The /doc, /sandbox and /testcases pages should normally be in the subject namespace, except in the namespaces that do not have the MediaWiki [[w:m:Help:Link#Subpage feature|subpage feature]] enabled: Main, File, Mediawiki and Category. (But currently we only show the /sandbox and /testcases links from User, User talk, Template and Template talk namespaces.) There are also a whole bunch of other technical reasons why the /doc page must be stored under the talk page for those (but only those) namespaces.
This template automatically points its [create] links for the /doc, /sandbox and /testcases to the right namespace.
===Technical details===
The preload page for the /doc [create] link is [[Template:Documentation/preload]]. The preload pages for the /sandbox and /testcases [create] links are [[Template:Documentation/preload-sandbox]] and [[Template:Documentation/preload-testcases]]. The preload page for the /sandbox [mirror] link is [[Template:Documentation/mirror]].
====Full syntax====
<pre>
{{Documentation}}
{{Documentation
| content =
}}
{{Documentation
| [path to documentation page]
| heading-style =
| heading =
| link box =
}}
</pre>
===See also===
* {{tl|Documentation subpage}}, a notice placed at the top of a /doc subpage explaining its role and including a link to the page it documents.
* [[w:Wikipedia:Template documentation]] is a how-to guide to template documentation.
* [[w:Wikipedia:Template sandbox and test cases]] explains the use of /sandbox and /testcases subpages and includes more information about template testing.
92ff94e315af492eb2698f80537068806f486349
30
29
2024-02-08T07:28:27Z
Ngyikp
2
1 revision imported from [[:dev:Template:Documentation/doc]]
wikitext
text/x-wiki
{{documentation subpage}}
This is the {{tl|Documentation}} template, used on almost every template page to contain that template's documented instructions and information.
For detailed instructions on how and when to use this template, see [[w:Wikipedia:Template documentation]].
This template displays a green documentation box like you are seeing now and automatically loads the content from a /doc subpage. It can also load the content from other places if instructed to.
This template is intended for documenting templates and other pages that are [[w:Wikipedia:Transclusion|transcluded]] onto other pages. It can be used in the [[w:Wikipedia:Template namespace|template namespace]] and most other [[w:Wikipedia:Namespace|namespace]]s.
Use of this template allows templates to be [[w:Wikipedia:Protection policy|protected]] where necessary, while allowing anyone to edit the documentation and categories.
===Usage===
Normally this template is used without any parameters, placed at the bottom of the template or page being documented, within a <noinclude> container:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
</syntaxhighlight>
Then this template automatically loads the content from the /doc subpage of the template it is used on.
This template can also load the content from any other page. Like this:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation |Template:Other page/doc}}
</noinclude>
</syntaxhighlight>
Note that when loading the documentation from a page other than the local /doc page it becomes tricky to handle the categories.
The content can also be fed directly as text. Like this:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation
| content =
(some documentation)
}}</noinclude>
</syntaxhighlight>
When the <nowiki>|content=</nowiki> parameter is used, the doc box normally does not show the [edit] [purge] links in the top right corner. Note that if the /doc page exists, a link to it is still shown in the link box below the doc box.
Parameter <nowiki>|1=</nowiki> and the <nowiki>|content=</nowiki> parameter can also be combined, like this:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation |1=Template:Any page/doc
| content =
{{Template:Any page/doc |parameters}}
}}</noinclude>
</syntaxhighlight>
Then the pagename fed as parameter 1 is used for the [edit] [purge] links and for the /doc link in the link box below the doc box. But the '''content''' parameter is used for the content shown in the doc box. The above code means that the content is transcluded as {{tlx|Any page/doc|parameters}}. In this example a parameter is also fed to the /doc page being loaded.
=== Shortcut ===
To automatically insert the [[w:Wikipedia:Noinclude|noinclude tags]], the template call and the guiding comment, use this [[w:WP:Substitution|substitution]] code:<br>
:<code><nowiki>{{subst:doc-code}}</nowiki></code>
===Best practice===
The code should be added at the bottom of the template code, with no space before <noinclude> (which would cause extra space on pages where the template is used).
Categories that apply to the template itself should be added to the bottom of the /doc subpage, inside <includeonly> tags.
If the documentation page contains <includeonly> or <noinclude> tags as part of the visible documentation text, replace the "<code><</code>" with "<code>&lt;</code>".
===Heading===
When in the Template namespace, this template shows this heading:
:[[File:Test Template Info-Icon - Version (2).svg|32px|link=[[w:Wikipedia:Template documentation]]]] '''Template documentation'''
In most other namespaces, such as "{{SITENAME}}:", it shows this heading:
:'''Documentation'''
But when on File (image) pages it shows this heading:
:'''Summary'''
The '''heading''' parameter can be used to set the heading to something else. Like this:
:<code><nowiki>{{Documentation |heading=Infobox documentation}}</nowiki></code>
If the '''heading''' parameter is empty but defined, no heading is shown and no [edit] [purge] links are shown. Like this:
:<code><nowiki>{{Documentation |heading=}}</nowiki></code>
The '''heading-style''' parameter can be fed optional [[w:Cascading Style Sheets|CSS]] values. Without quotation marks <code>" "</code> but with the ending semicolons <code>;</code>. For example:
:<code>heading-style=font-size:150%;color:red;</code>
===Link box===
Below the big doc box is a small link box that shows some meta-data about the documentation. The link box shows different things depending on what parameters are fed to this template, and in which namespace it is used. In some cases the link box is not shown at all.
To hide the link box, add the parameter
: <nowiki>|link box=off</nowiki>.
You can also insert customised text into the link box, by setting the <nowiki>|link box=</nowiki> parameter. For example:
<pre style="width:auto; overflow:scroll">
|link box=This documentation is automatically generated by [[w:Template:Country showdata]]
</pre>
===Automatic functions===
If the documentation page does not exist, the [create] link includes a [[mw:Manual:Creating pages with preloaded text|preload]] page so that clicking it will pre-fill the edit form with the basic documentation page format. Preload text is also used for the /sandbox and /testcases [create] links.
===Subject namespaces vs. talk namespaces===
Terminology: ''Subject namespaces'' are the opposite of ''talk namespaces''. For instance "Template:" is the subject space of "Template talk:".
This template is usually placed in a subject namespace, within <noinclude> tags. But in some cases this template needs to be on the talk page:
* In the Mediawiki namespace, since <noinclude> often does not work in system messages, and since the Mediawiki namespace needs to be kept clean for performance reasons.
When placed on talk pages, this template usually is placed near the top of the page and without <noinclude> tags.
The /doc, /sandbox and /testcases pages should normally be in the subject namespace, except in the namespaces that do not have the MediaWiki [[w:m:Help:Link#Subpage feature|subpage feature]] enabled: Main, File, Mediawiki and Category. (But currently we only show the /sandbox and /testcases links from User, User talk, Template and Template talk namespaces.) There are also a whole bunch of other technical reasons why the /doc page must be stored under the talk page for those (but only those) namespaces.
This template automatically points its [create] links for the /doc, /sandbox and /testcases to the right namespace.
===Technical details===
The preload page for the /doc [create] link is [[Template:Documentation/preload]]. The preload pages for the /sandbox and /testcases [create] links are [[Template:Documentation/preload-sandbox]] and [[Template:Documentation/preload-testcases]]. The preload page for the /sandbox [mirror] link is [[Template:Documentation/mirror]].
====Full syntax====
<pre>
{{Documentation}}
{{Documentation
| content =
}}
{{Documentation
| [path to documentation page]
| heading-style =
| heading =
| link box =
}}
</pre>
===See also===
* {{tl|Documentation subpage}}, a notice placed at the top of a /doc subpage explaining its role and including a link to the page it documents.
* [[w:Wikipedia:Template documentation]] is a how-to guide to template documentation.
* [[w:Wikipedia:Template sandbox and test cases]] explains the use of /sandbox and /testcases subpages and includes more information about template testing.
92ff94e315af492eb2698f80537068806f486349
Module:Documentation/styles.css
828
14
27
2023-01-16T23:40:04Z
dev>Pppery
0
text
text/plain
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
/* [[Category:Template stylesheets]] */
5fb984fe8632dc068db16853a824c9f3d5175dd9
28
27
2024-02-08T07:28:27Z
Ngyikp
2
1 revision imported from [[:dev:Module:Documentation/styles.css]]
text
text/plain
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
/* [[Category:Template stylesheets]] */
5fb984fe8632dc068db16853a824c9f3d5175dd9
Main Page
0
1
1
2024-02-08T00:20:07Z
MediaWiki default
1
Welcome to Miraheze!
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
21236ac3f8d65e5563b6da6b70815ca6bf1e6616
File:Chicory Wiki page background.jpg
6
2
2
2024-02-08T04:23:43Z
Ngyikp
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
3
2
2024-02-08T04:24:37Z
Ngyikp
2
Protected "[[File:Chicory Wiki page background.jpg]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
MediaWiki:Vector.css
8
3
4
2024-02-08T04:27:28Z
Ngyikp
2
add page background
css
text/css
/* All CSS here will be loaded for users of the Vector skin */
body {
background: #fff url('https://static.miraheze.org/chicorywiki/6/6c/Chicory_Wiki_page_background.jpg') no-repeat fixed 50% 50%;
background-size: cover;
}
@media print {
body {
background: none;
}
}
c96e6f951889e340d56254173416b53ce2d84a84
6
4
2024-02-08T04:33:59Z
Ngyikp
2
change title font
css
text/css
/* All CSS here will be loaded for users of the Vector skin */
body {
background: #fff url('https://static.miraheze.org/chicorywiki/6/6c/Chicory_Wiki_page_background.jpg') no-repeat fixed 50% 50%;
background-size: cover;
}
@media print {
body {
background: none;
}
}
.mw-logo-wordmark {
font-family: Domigorgon, sans-serif;
}
46d8b42668c4fa178e269c6d7155878c83f78b81
7
6
2024-02-08T04:39:15Z
Ngyikp
2
semi-transparent body background, expand custom font to more headings
css
text/css
/* All CSS here will be loaded for users of the Vector skin */
body {
background: #fff url('https://static.miraheze.org/chicorywiki/6/6c/Chicory_Wiki_page_background.jpg') no-repeat fixed 50% 50%;
background-size: cover;
}
@media print {
body {
background: none;
}
}
.mw-logo-wordmark {
font-family: Domigorgon, sans-serif;
}
.mw-body h1 {
font-family: Domigorgon, 'Linux Libertine', 'Georgia', 'Times', serif;
}
.vector-feature-zebra-design-disabled .vector-header-container,
.vector-feature-zebra-design-disabled .mw-page-container {
background-color: rgba(255, 255, 255, 0.97);
}
f3841556286817699c63522094d904f1ac4a3d9d
15
7
2024-02-08T06:03:45Z
Ngyikp
2
fix legacy Vector
css
text/css
/* All CSS here will be loaded for users of the Vector skin */
body {
background: #fff url('https://static.miraheze.org/chicorywiki/6/6c/Chicory_Wiki_page_background.jpg') no-repeat fixed 50% 50%;
background-size: cover;
}
@media print {
body {
background: none;
}
}
.mw-logo-wordmark {
font-family: Domigorgon, sans-serif;
}
.mw-body h1 {
font-family: Domigorgon, 'Linux Libertine', 'Georgia', 'Times', serif;
}
.skin-vector-legacy #mw-panel,
.skin-vector-legacy .mw-body,
.vector-feature-zebra-design-disabled .vector-header-container,
.vector-feature-zebra-design-disabled .mw-page-container,
.skin-vector-legacy #footer {
background-color: rgba(255, 255, 255, 0.97);
}
.skin-vector-legacy #footer {
display: flex;
flex-direction: column;
}
.skin-vector-legacy #footer-icons {
align-self: flex-end;
}
192585f3d32b4a00409c6e4e3f274d93e92c8f02
MediaWiki:Common.css
8
4
5
2024-02-08T04:31:40Z
Ngyikp
2
Add Domigorgon font
css
text/css
/* CSS placed here will be applied to all skins */
/* Original font from https://www.dafont.com/domigorgon.font, Domigorgon Plus modified by Legendknight 3000 */
@font-face {
font-family: 'Domigorgon';
src: url('data:font/woff2;base64,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') format('woff2');
font-weight: normal;
font-style: normal;
}
7172abf5b1323af186f845fafe7310690932fe87
File:Chicory Wiki favicon.ico
6
5
8
2024-02-08T05:43:42Z
Ngyikp
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
9
8
2024-02-08T05:44:09Z
Ngyikp
2
Protected "[[File:Chicory Wiki favicon.ico]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
11
9
2024-02-08T05:52:52Z
Ngyikp
2
Ngyikp uploaded a new version of [[File:Chicory Wiki favicon.ico]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Chicory game logo.png
6
6
10
2024-02-08T05:47:02Z
Ngyikp
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
14
10
2024-02-08T05:54:19Z
Ngyikp
2
Protected "[[File:Chicory game logo.png]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Chicory Wiki apple-touch-icon.png
6
7
12
2024-02-08T05:53:37Z
Ngyikp
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
13
12
2024-02-08T05:54:10Z
Ngyikp
2
Protected "[[File:Chicory Wiki apple-touch-icon.png]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Template:Infobox character
10
8
16
2024-02-08T07:18:19Z
Ngyikp
2
Infobox created with infobox builder.
wikitext
text/x-wiki
<infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="species">
<label>Species</label>
</data>
<data source="location">
<label>Location</label>
</data>
<data source="gender">
<label>Gender</label>
</data>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="relationships">
<label>Relationships</label>
</data>
<data source="style">
<label>Style</label>
</data>
</infobox>
d64643f750a5bedef808aaacf1a48824934595c2
39
16
2024-02-08T07:33:29Z
Ngyikp
2
add {{Documentation}}
wikitext
text/x-wiki
<infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="species">
<label>Species</label>
</data>
<data source="location">
<label>Location</label>
</data>
<data source="gender">
<label>Gender</label>
</data>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="relationships">
<label>Relationships</label>
</data>
<data source="style">
<label>Style</label>
</data>
</infobox><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
d4bc065aae256a3c997f3955051219b6fffc4a88
Template:Infobox character/doc
10
20
40
2024-02-08T07:38:48Z
Ngyikp
2
add documentation
wikitext
text/x-wiki
Sample infobox:
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|gender=Any (player's choice)
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
<pre>
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|gender=Any (player's choice)
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
</pre>
d5d67f5a3b402589e4073fbb315f855312819ad5
Module:Documentation/styles.css
828
14
41
28
2024-02-08T07:40:35Z
Ngyikp
2
Ngyikp changed the content model of the page [[Module:Documentation/styles.css]] from "plain text" to "Sanitized CSS"
sanitized-css
text/css
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
/* [[Category:Template stylesheets]] */
5fb984fe8632dc068db16853a824c9f3d5175dd9
Pizza
0
21
42
2024-02-08T07:42:55Z
Ngyikp
2
start page
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|gender=Any (player's choice)
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]].
[[Category:Characters]]
82edc3bbb08621f25a9700ef02a3d30e281eab2d
44
42
2024-02-08T07:44:55Z
Ngyikp
2
fix visual editor compatibility
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|gender=Any (player's choice)
|pronouns=Any (player's choice)
|occupation=Wielder
Janitor (formerly)
Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]].
[[Category:Characters]]
81cb789947e37d61758822521cb6de2531bb2961
45
44
2024-02-08T07:45:59Z
Ngyikp
2
Undo revision [[Special:Diff/44|44]] by [[Special:Contributions/Ngyikp|Ngyikp]] ([[User talk:Ngyikp|talk]]) ok visual editor is just bugged -_-
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|gender=Any (player's choice)
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]].
[[Category:Characters]]
82edc3bbb08621f25a9700ef02a3d30e281eab2d
75
45
2024-02-08T23:45:42Z
Ngyikp
2
remove pronouns field, combined to gender field
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|gender=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]].
[[Category:Characters]]
4da86bbad8809477158e994642dd57768ff9ecdb
80
75
2024-02-08T23:55:49Z
Ngyikp
2
change to pronouns field
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]].
[[Category:Characters]]
1f076c188d2d84b29a14083fa393f39b8938917a
Category:Characters
14
22
43
2024-02-08T07:43:17Z
Ngyikp
2
start page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Clementine
0
23
46
2024-02-08T07:51:34Z
Ngyikp
2
start page
wikitext
text/x-wiki
{{Infobox character
|image=Clementine character.png
|species=Dog
|location=Potluck
|gender=Female
|pronouns=she/her
|occupation=Art student
|relationships=[[Pizza]] (sibling)
}}
'''Clementine''' is [[Pizza]]'s sister.
== Trivia ==
* It's not possible to name yourself as Clementine through usual methods as the game will ask for your next favorite food, however nothing special happens if you did manage to call yourself Clementine.
[[Category:Characters]]
8e147d33c84f2bc1d4a8c254e3594553864d437b
76
46
2024-02-08T23:45:58Z
Ngyikp
2
combine pronouns field to gender
wikitext
text/x-wiki
{{Infobox character
|image=Clementine character.png
|species=Dog
|location=Potluck
|gender=Female (she/her)
|occupation=Art student
|relationships=[[Pizza]] (sibling)
}}
'''Clementine''' is [[Pizza]]'s sister.
== Trivia ==
* It's not possible to name yourself as Clementine through usual methods as the game will ask for your next favorite food, however nothing special happens if you did manage to call yourself Clementine.
[[Category:Characters]]
e2bd71d2445014a3ee718cbfee8865b1f0ac5063
81
76
2024-02-08T23:55:55Z
Ngyikp
2
change to pronouns field
wikitext
text/x-wiki
{{Infobox character
|image=Clementine character.png
|species=Dog
|location=Potluck
|pronouns=she/her
|occupation=Art student
|relationships=[[Pizza]] (sibling)
}}
'''Clementine''' is [[Pizza]]'s sister.
== Trivia ==
* It's not possible to name yourself as Clementine through usual methods as the game will ask for your next favorite food, however nothing special happens if you did manage to call yourself Clementine.
[[Category:Characters]]
237bc82e7dba107426af3b62452a702603d34980
File:Pizza character.png
6
24
47
2024-02-08T07:55:26Z
Ngyikp
2
[[Pizza]] character
wikitext
text/x-wiki
== Summary ==
[[Pizza]] character
f8e2ceeb83b486213f56fbfc29a9ed9a82579244
File:Clementine character.png
6
25
48
2024-02-08T07:55:45Z
Ngyikp
2
[[Clementine]] character
wikitext
text/x-wiki
== Summary ==
[[Clementine]] character
cb533b204575cb8d34fa9d53e63db22dd647954a
Category:Locations
14
26
49
2024-02-08T08:01:53Z
Ngyikp
2
start
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Main Page
0
1
50
1
2024-02-08T08:02:03Z
Ngyikp
2
update main page
wikitext
text/x-wiki
__NOTOC__
[[File:Chicory game logo.png|frameless|right|alt=Chicory: A Colorful Tale logo]]
== Welcome to the Chicory: A Colorful Tale wiki! ==
We're still getting things set up, you can help out by creating and improving articles for the [[:Category:Characters|characters]], [[:Category:Locations|locations]] and story!
Check out [[Special:AllPages]] for list of articles already created on this wiki.
d75053dd307ed58c8383a7dba4f14ea0fb48a12f
53
50
2024-02-08T10:09:12Z
Ngyikp
2
try to fix mobile
wikitext
text/x-wiki
__NOTOC__
[[File:Chicory game logo.png|frameless|right|alt=Chicory: A Colorful Tale logo]]
== Welcome to the Chicory: A Colorful Tale wiki! ==
We're still getting things set up, you can help out by creating and improving articles for the [[:Category:Characters|characters]], [[:Category:Locations|locations]] and story!
Check out [[Special:AllPages]] for list of articles already created on this wiki.
3488c8d5d1882a6bca64117041792158ac1296e7
54
53
2024-02-08T10:17:42Z
Ngyikp
2
try to fix mobile
wikitext
text/x-wiki
__NOTOC__
[[File:Chicory game logo.png|150px|right|alt=Chicory: A Colorful Tale logo]]
'''Welcome to the Chicory: A Colorful Tale wiki!'''
We're still getting things set up, you can help out by creating and improving articles for the [[:Category:Characters|characters]], [[:Category:Locations|locations]] and story!
Check out [[Special:AllPages]] for list of articles already created on this wiki.
03749b6b14003416a92312e4011cd79747000569
67
54
2024-02-08T22:24:36Z
Ngyikp
2
expand to-help stuff
wikitext
text/x-wiki
__NOTOC__
[[File:Chicory game logo.png|150px|right|alt=Chicory: A Colorful Tale logo]]
'''Welcome to the Chicory: A Colorful Tale wiki!'''
We're still getting things set up, you can help out by creating and improving articles for
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
* Story/chapters
* Quests, e.g. lost kids, art classes, mail delivery
* [[:Category:Soundtrack albums|Soundtrack albums]]
Check out [[Special:AllPages]] for list of articles already created on this wiki.
9cd2925270617563c0e896ac5d8e02c6fb0eb564
83
67
2024-02-08T23:59:06Z
Ngyikp
2
add basic how to
wikitext
text/x-wiki
__NOTOC__
[[File:Chicory game logo.png|150px|right|alt=Chicory: A Colorful Tale logo]]
'''Welcome to the Chicory: A Colorful Tale wiki!'''
We're still getting things set up, you can help out by creating and improving articles for
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
* Story/chapters
* Quests, e.g. lost kids, art classes, mail delivery
* [[:Category:Soundtrack albums|Soundtrack albums]]
Check out [[Special:AllPages]] for list of articles already created on this wiki.
== Basic how to create a new character page ==
# Search for the article name
# If the article doesn't exist, it will ask if you want to create the page, click the red link
# Copy the source from another pre-existing character article, like [https://wiki.chicory.pizza/wiki/Clementine?action=edit Clementine]
# Paste the above source to your new page, and start editing!
To upload images, go to [[Special:Upload]]
662c3ef7ab0352d518fead4146df365f68285bf3
89
83
2024-02-09T00:09:54Z
Cement
7
Just putting some broken links
wikitext
text/x-wiki
__NOTOC__
[[File:Chicory game logo.png|150px|right|alt=Chicory: A Colorful Tale logo]]
'''Welcome to the Chicory: A Colorful Tale wiki!'''
We're still getting things set up, you can help out by creating and improving articles for
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
* Story/[[chapters]]
* [[Quests]], e.g. lost kids, art classes, mail delivery
* [[:Category:Soundtrack albums|Soundtrack albums]]
Check out [[Special:AllPages]] for list of articles already created on this wiki.
== Basic how to create a new character page ==
# Search for the article name
# If the article doesn't exist, it will ask if you want to create the page, click the red link
# Copy the source from another pre-existing character article, like [https://wiki.chicory.pizza/wiki/Clementine?action=edit Clementine]
# Paste the above source to your new page, and start editing!
To upload images, go to [[Special:Upload]]
7ebbd11633ca7e55342321161699886a23c7d8ab
MediaWiki:Sidebar
8
27
51
2024-02-08T08:08:16Z
Ngyikp
2
add characters and locations, move 2 links to separate Wiki section
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** Category:Characters|Characters
** Category:Locations|Locations
** randompage-url|randompage
* Wiki
** recentchanges-url|recentchanges
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
251336ba377a536cb1eca451f585235209e8aabe
65
51
2024-02-08T12:16:30Z
Ngyikp
2
add soundtrack albums
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** Category:Characters|Characters
** Category:Locations|Locations
** Category:Soundtrack albums|Soundtrack albums
** randompage-url|randompage
* Wiki
** recentchanges-url|recentchanges
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
01eedb5420ec1614f02d5560bdf25984f8109804
MediaWiki:Vector.css
8
3
52
15
2024-02-08T09:59:22Z
Ngyikp
2
use domigorgon font on more places
css
text/css
/* All CSS here will be loaded for users of the Vector skin */
body {
background: #fff url('https://static.miraheze.org/chicorywiki/6/6c/Chicory_Wiki_page_background.jpg') no-repeat fixed 50% 50%;
background-size: cover;
}
@media print {
body {
background: none;
}
}
.mw-logo-wordmark,
#pt-userpage-2,
.portable-infobox .pi-title {
font-family: Domigorgon, sans-serif;
}
.mw-body h1 {
font-family: Domigorgon, 'Linux Libertine', 'Georgia', 'Times', serif;
}
.skin-vector-legacy #mw-panel,
.skin-vector-legacy .mw-body,
.vector-feature-zebra-design-disabled .vector-header-container,
.vector-feature-zebra-design-disabled .mw-page-container,
.skin-vector-legacy #footer {
background-color: rgba(255, 255, 255, 0.97);
}
.skin-vector-legacy #footer {
display: flex;
flex-direction: column;
}
.skin-vector-legacy #footer-icons {
align-self: flex-end;
}
bd8dcf2f92b7a25f55080d282d2de34da1d77860
Template:Infobox album
10
28
55
2024-02-08T11:01:17Z
Ngyikp
2
Infobox created with infobox builder.
wikitext
text/x-wiki
<infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="released">
<label>Released</label>
</data>
<data source="artist">
<label>Artist</label>
</data>
<data source="length">
<label>Length</label>
</data>
<data source="label">
<label>Label</label>
</data>
</infobox>
0f9964c5bcd48d0e9876c4a273d3376a55eaab6f
57
55
2024-02-08T11:03:07Z
Ngyikp
2
add {{Documentation}}
wikitext
text/x-wiki
<infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="released">
<label>Released</label>
</data>
<data source="artist">
<label>Artist</label>
</data>
<data source="length">
<label>Length</label>
</data>
<data source="label">
<label>Label</label>
</data>
</infobox><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
4916977afe222ef5090963b036833e9ac7ece90f
File:Original Soundtrack album.png
6
30
58
2024-02-08T11:12:43Z
Ngyikp
2
For [[Chicory: A Colorful Tale (Original Soundtrack)]]
Collected from https://kuraine.notion.site/kuraine/RADICAL-DREAMLAND-62b6665ca4ce4c658b7f036e930551a3
wikitext
text/x-wiki
== Summary ==
For [[Chicory: A Colorful Tale (Original Soundtrack)]]
Collected from https://kuraine.notion.site/kuraine/RADICAL-DREAMLAND-62b6665ca4ce4c658b7f036e930551a3
cd34db3060ca9cba929a1025159673efade3c24e
Template:Infobox album/doc
10
31
59
2024-02-08T11:13:55Z
Ngyikp
2
start documentation
wikitext
text/x-wiki
Sample infobox:
{{Infobox album
|image=Original Soundtrack album.png
|released=June 10, 2021
|artist=[[Lena Raine]]
|length=2 hours 36 minutes
|label=Radical Dreamland
}}
<pre>
{{Infobox album
|image=Original Soundtrack album.png
|released=June 10, 2021
|artist=[[Lena Raine]]
|length=2 hours 36 minutes
|label=Radical Dreamland
}}
</pre>
4c60a33ca60ccd54325aa031684d9e653647216a
Chicory: A Colorful Tale (Original Soundtrack)
0
32
60
2024-02-08T11:17:38Z
Ngyikp
2
start page
wikitext
text/x-wiki
{{Infobox album
|image=Original Soundtrack album.png
|released=June 10, 2021
|artist=[[Lena Raine]]
|length=2 hours 36 minutes
|label=Radical Dreamland
}}
== Tracklist ==
# Blank Canvas
# A Colorful Tale
# The Town of Luncheon
# Supper Woods
# Eyes in the Darkness
# Not Anymore
# Potluck
# Art Academy
# Appie Foothills
# Elevenses
# Wielder Temple
# Probably Ancient Evil
# A Wielder's Duty
# Just Like You
# Sips River
# Gulp Swamp
# Mistake
# Erase You
# Seeds of Doubt
# Messed Up Person
# Letter From the Queen
# Dinners, the Big City
# Clementine
# Teatime Meadows
# Caves
# Grub Deep
# Her Wretched Utterances
# Feast
# Alone With Myself
# Nobody
# uoY mA I
# Abandon Me
# Chicory's Theme
# Banquet Rainforest
# Dessert Mountain
# Song of the Wielders
# Simmer Springs
# Turnabout Squeeze
# Spoons Island
# More Than Myself
# Color Lab
# Calling Home
# Brekkie
# Brunch Canyon
# Buried Deep
# MONSTER
# She's Gone
# The Wielders' Legacy
# The Dark Forest
# You're Not Real
# Just Reach Out
# Something New
# Once More Into the Dark
# History Against Us
# Do the Impossible
# Change Everything
# The Mountain Top
# The Tale End
# A Fresh Start
# This Colorful World
== External links ==
* [https://medium.com/@kuraine/composing-for-chicory-motifs-memories-9d7351555694 Full liner notes]
* [https://radicaldreamland.bandcamp.com/album/chicory-a-colorful-tale-original-soundtrack Bandcamp]
* [https://open.spotify.com/album/6DdR2sAfxq6qhsYhVIa83Q Spotify]
* [https://music.apple.com/sa/album/chicory-a-colorful-tale-original-soundtrack/1571468951 Apple Music]
[[Category:Soundtrack albums]]
f167c767d11de448094b0e463353b0961c03d34b
61
60
2024-02-08T11:33:14Z
Ngyikp
2
add note for Banquet Rainforest, not a banquest :boowomp:
wikitext
text/x-wiki
{{Infobox album
|image=Original Soundtrack album.png
|released=June 10, 2021
|artist=[[Lena Raine]]
|length=2 hours 36 minutes
|label=Radical Dreamland
}}
== Tracklist ==
# Blank Canvas
# A Colorful Tale
# The Town of Luncheon
# Supper Woods
# Eyes in the Darkness
# Not Anymore
# Potluck
# Art Academy
# Appie Foothills
# Elevenses
# Wielder Temple
# Probably Ancient Evil
# A Wielder's Duty
# Just Like You
# Sips River
# Gulp Swamp
# Mistake
# Erase You
# Seeds of Doubt
# Messed Up Person
# Letter From the Queen
# Dinners, the Big City
# Clementine
# Teatime Meadows
# Caves
# Grub Deep
# Her Wretched Utterances
# Feast
# Alone With Myself
# Nobody
# uoY mA I
# Abandon Me
# Chicory's Theme
# Banquet Rainforest<ref group="note">Misspelled as Banquest Rainforest on various streaming services due to a typo https://twitter.com/kuraine/status/1405221495488405507</ref>
# Dessert Mountain
# Song of the Wielders
# Simmer Springs
# Turnabout Squeeze
# Spoons Island
# More Than Myself
# Color Lab
# Calling Home
# Brekkie
# Brunch Canyon
# Buried Deep
# MONSTER
# She's Gone
# The Wielders' Legacy
# The Dark Forest
# You're Not Real
# Just Reach Out
# Something New
# Once More Into the Dark
# History Against Us
# Do the Impossible
# Change Everything
# The Mountain Top
# The Tale End
# A Fresh Start
# This Colorful World
== Notes ==
<references group="note" />
== External links ==
* [https://medium.com/@kuraine/composing-for-chicory-motifs-memories-9d7351555694 Full liner notes]
* [https://radicaldreamland.bandcamp.com/album/chicory-a-colorful-tale-original-soundtrack Bandcamp]
* [https://open.spotify.com/album/6DdR2sAfxq6qhsYhVIa83Q Spotify]
* [https://music.apple.com/sa/album/chicory-a-colorful-tale-original-soundtrack/1571468951 Apple Music]
[[Category:Soundtrack albums]]
3bc56ad3027f227edde8f0ac0bc7efafda78072d
Category:Soundtrack albums
14
33
62
2024-02-08T11:34:07Z
Ngyikp
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:The Sounds of Picnic Province album.png
6
34
63
2024-02-08T12:13:43Z
Ngyikp
2
For [[Chicory: The Sounds of Picnic Province]]
Collected from https://kuraine.notion.site/kuraine/RADICAL-DREAMLAND-62b6665ca4ce4c658b7f036e930551a3
wikitext
text/x-wiki
== Summary ==
For [[Chicory: The Sounds of Picnic Province]]
Collected from https://kuraine.notion.site/kuraine/RADICAL-DREAMLAND-62b6665ca4ce4c658b7f036e930551a3
e91187dd2ff07d7fda1a89d6691a5c725d9988a5
Chicory: The Sounds of Picnic Province
0
35
64
2024-02-08T12:15:30Z
Ngyikp
2
start page
wikitext
text/x-wiki
{{Infobox album
|image=The Sounds of Picnic Province album.png
|released=June 24, 2021
|artist=[[Lena Raine]]
|length=43 minutes
|label=Radical Dreamland
}}
== Tracklist ==
# The Outskirts of Luncheon
# Lost in Supper Woods
# Peering into Potluck
# A Stroll Through Appie Foothills
# Indoors at Elevenses
# Dipping Your Feet in Sips River
# Stuck in Gulp Swamp
# Lingering With Seeds of Doubt
# The Alleys and Rooftops of Dinners
# The Slice Shop
# Singing in Teatime Meadows
# Buzzing Around Feast
# Under an Umbrella in Banquet Rainforest
# The View From Dessert Mountain
# Sleuthing Around Simmer Springs
# Soaking on Spoons Island
# Watching the Waves at Brekkie
# The Distant Dark Forest
# Coming Home to Luncheon
== External links ==
* [https://radicaldreamland.bandcamp.com/album/chicory-the-sounds-of-picnic-province Bandcamp]
* [https://open.spotify.com/album/7fIiMj5sBhQyvWX65Kcz6u Spotify]
* [https://music.apple.com/us/album/chicory-the-sounds-of-picnic-province/1581532328 Apple Music]
[[Category:Soundtrack albums]]
e55de2c93d29568844d3bfae3759f8521bdb5c5f
Luncheon
0
36
66
2024-02-08T12:43:32Z
Ngyikp
2
start page
wikitext
text/x-wiki
'''Luncheon''' is the first major location of the game and features the [[Wielder Tower]] and [[Pizza]]'s House.
[[Category:Locations]]
8172cfc458bf44fedce5c98e3629b013813b1f98
71
66
2024-02-08T23:42:36Z
Cement
7
Named other buildings located in Luncheon, inserted an image of the 4 colours of Luncheon after beating the game, and wrote a small and imcomplete paragraph about Luncheon's colour palette.
wikitext
text/x-wiki
'''Luncheon''' is the first major location of the game and features the [[Wielder Tower]] and [[Pizza]]'s House. Other notable buildings in [[Luncheon]] include:
[[Cafe]]
[[Lost Kid Daycare]]
[[Hat Maker]]/[[Garlic]]'s house
[[File:Luncheon colours.png|alt=4 coloured circles are beside eachother. From left to right, the first one is a light-green, the second is salmon coloured, the third is blue, and the right-most colour is cyan. The colours are slightly brighter than the colours from before beating the game.|left|thumb|The 4 colours available in Luncheon after beating the game.]]
The colour Palette of [[Luncheon]] changes over the course of the game. Going from ''[placeholder]'' through the first 9 [[chapters]], to ''[placeholder]'' in the 10th chapter, during the [[corruption]], and to a brighter version of the original colours after beating the game.
[[Category:Locations]]
91bcc9c5f9c160e53cddcad04b5e73530f50452c
82
71
2024-02-08T23:56:20Z
Cement
7
A paragraph listing a̶l̶l̶ ̶t̶h̶e̶ ̶p̶a̶g̶e̶s̶ ̶w̶e̶ ̶n̶e̶e̶d̶ ̶t̶o̶ ̶m̶a̶k̶e̶ the locations that connect directly to Luncheon.
wikitext
text/x-wiki
'''Luncheon''' is the first major location of the game and features the [[Wielder Tower]] and [[Pizza]]'s House. Other notable buildings in [[Luncheon]] include:
[[Cafe]]
[[Lost Kid Daycare]]
[[Hat Maker]]/[[Garlic]]'s house
Besides that, Luncheon is directly connected with the locations of [[Gulp Swamp]], [[Nibble Tunnel]], [[Sips River]], [[Supper Woods]], [[Teatime Meadows]] and [[Yum Caves]].
[[File:Luncheon colours.png|alt=4 coloured circles are beside eachother. From left to right, the first one is a light-green, the second is salmon coloured, the third is blue, and the right-most colour is cyan. The colours are slightly brighter than the colours from before beating the game.|left|thumb|The 4 colours available in Luncheon after beating the game.]]
The colour Palette of [[Luncheon]] changes over the course of the game. Going from ''[placeholder]'' through the first 9 [[chapters]], to ''[placeholder]'' in the 10th chapter, during the [[corruption]], and finally to a brighter version of the original colours after beating the game.
[[Category:Locations]]
7f584d28c4a06dc8afcb83e0a625f38d82f1ae2c
85
82
2024-02-09T00:02:51Z
Cement
7
Inserted a list of the residents of Luncheon. Godspeed.
wikitext
text/x-wiki
'''Luncheon''' is the first major location of the game and features the [[Wielder Tower]] and [[Pizza]]'s House. Other notable features in [[Luncheon]] include:
* [[Cafe]]
* [[Lost Kid Daycare]]
* [[Hat Maker]]/[[Garlic]]'s house
* Color Map
Besides that, Luncheon is directly connected with the locations of [[Gulp Swamp]], [[Nibble Tunnel]], [[Sips River]], [[Supper Woods]], [[Teatime Meadows]] and [[Yum Caves]].
[[File:Luncheon colours.png|alt=4 coloured circles are beside eachother. From left to right, the first one is a light-green, the second is salmon coloured, the third is blue, and the right-most colour is cyan. The colours are slightly brighter than the colours from before beating the game.|left|thumb|The 4 colours available in Luncheon after beating the game.]]
The colour Palette of [[Luncheon]] changes over the course of the game. Going from ''[placeholder]'' through the first 9 [[chapters]], to ''[placeholder]'' in the 10th chapter, during the [[corruption]], and finally to a brighter version of the original colours after beating the game.
=== Residents: ===
* [[Basil]]
* [[Beans]]
* [[Chicory (character)|Chicory]]
* [[Cola]]
* [[Ginger]]
* [[Lemon]]
* [[Macaroon]]
* [[Pea]]
* [[Pepper]] (former [[Dinners]] resident)
* [[Pickle]]
* [[Pumpernickel]]
[[Category:Locations]]
e06853232efe6e1256693864acab29758a81886c
File:Luncheon colours.png
6
38
69
2024-02-08T23:18:08Z
Cement
7
wikitext
text/x-wiki
Demonstration of Luncheon's four colours.
633361756e8eae0ee74e251673c4ff35c868e04f
70
69
2024-02-08T23:24:19Z
Cement
7
I just discovered that there's differences in colours before and after beating the game.
wikitext
text/x-wiki
Demonstration of Luncheon's four colours after beating the game.
940c25d4e2fd1993ed69d8696c3f44c3c879e9f1
Template:Infobox character
10
8
72
39
2024-02-08T23:44:34Z
Ngyikp
2
remove pronouns, will still be listed on gender
wikitext
text/x-wiki
<infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="species">
<label>Species</label>
</data>
<data source="location">
<label>Location</label>
</data>
<data source="gender">
<label>Gender</label>
</data>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="relationships">
<label>Relationships</label>
</data>
<data source="style">
<label>Style</label>
</data>
</infobox><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
84b809cb2e75202b3643906fcd0cff4fc08dfba8
78
72
2024-02-08T23:51:36Z
Chevreau
8
it's faster to ignore gender
wikitext
text/x-wiki
<infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="species">
<label>Species</label>
</data>
<data source="location">
<label>Location</label>
</data>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="relationships">
<label>Relationships</label>
</data>
<data source="style">
<label>Style</label>
</data>
</infobox><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
ce35ab8916c827b0fe8f7d059427b69591f6324f
Template:Infobox character/doc
10
20
74
40
2024-02-08T23:45:31Z
Ngyikp
2
remove pronouns field, combine to gender field
wikitext
text/x-wiki
Sample infobox:
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|gender=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
<pre>
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|gender=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
</pre>
e1abb619b6bd55de990dfeb86489db05d9adc462
86
74
2024-02-09T00:04:16Z
Ngyikp
2
change to pronouns field
wikitext
text/x-wiki
Sample infobox:
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
<pre>
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
</pre>
23fb104e0b5754ee3f9ec13ed51f20386a38dfe6
File:Miso.png
6
39
77
2024-02-08T23:49:11Z
Chevreau
8
wikitext
text/x-wiki
Miso Character Sprite
a25568bfbc4d5a3635b4ff9511d64a6adafc38d8
Miso
0
40
79
2024-02-08T23:52:46Z
Chevreau
8
Created page with "{{Infobox character |title=Miso |image=Miso.png |species=Owl |location=Potluck |pronouns=She/Her }} '''Miso''' is a bird or something == Dialogue == sup pizza u r my babysitter"
wikitext
text/x-wiki
{{Infobox character
|title=Miso
|image=Miso.png
|species=Owl
|location=Potluck
|pronouns=She/Her
}}
'''Miso''' is a bird or something
== Dialogue ==
sup pizza u r my babysitter
8aab866653395b8361f72b25c5faff2fab21e570
90
79
2024-02-09T00:40:50Z
Chevreau
8
wikitext
text/x-wiki
{{Infobox character
|title=Miso
|image=Miso.png
|species=Owl
|location=Potluck
|pronouns=She/Her
}}
'''Miso''' is a bird or something
== Dialogue ==
sup pizza u r my babysitter
[[Category:Characters]]
5d7793d60e9ab9c37d11795583384f128f3e8f5f
Curry
0
41
84
2024-02-08T23:59:58Z
Pizza the Wielder
6
Created page with "{{Infobox character |image= |species=Dog |location=Brekkie |gender=Male |pronouns=he/him |occupation=Sweets Shop Owner }} Curry provides a side-quest for the player having the player design a custom treat. == Trivia == * When the player achieves 100% game completion Curry will call the player and visit the players house. * Curry is the Chicorysona of developer Greg Lobanov * Curry has special lines if the player has the same name as Curry. [[Category:Characters]]"
wikitext
text/x-wiki
{{Infobox character
|image=
|species=Dog
|location=Brekkie
|gender=Male
|pronouns=he/him
|occupation=Sweets Shop Owner
}}
Curry provides a side-quest for the player having the player design a custom treat.
== Trivia ==
* When the player achieves 100% game completion Curry will call the player and visit the players house.
* Curry is the Chicorysona of developer Greg Lobanov
* Curry has special lines if the player has the same name as Curry.
[[Category:Characters]]
e6b60fba1dcb73ac65ed9e0233428afc7d18795a
88
84
2024-02-09T00:07:57Z
Ngyikp
2
add image
wikitext
text/x-wiki
{{Infobox character
|image=Curry character.png
|species=Dog
|location=Brekkie
|gender=Male
|pronouns=he/him
|occupation=Sweets Shop Owner
}}
Curry provides a side-quest for the player having the player design a custom treat.
== Trivia ==
* When the player achieves 100% game completion, Curry will call the player and visit the players house.
* Curry is the Chicorysona of developer Greg Lobanov.
* Curry has special lines if the player has the same name as Curry.
[[Category:Characters]]
071265f4a7dc9d5c2eda604b9904f7db5482eb80
File:Curry character.png
6
42
87
2024-02-09T00:07:25Z
Ngyikp
2
[[Curry]] character
wikitext
text/x-wiki
== Summary ==
[[Curry]] character
fd07830c1cbede4485400985b19b676c23e1c0e5
Quests
0
43
91
2024-02-09T01:23:23Z
Cement
7
I'll finish this later
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats's requests]]
* [[Beans's lost kittens]]
7f83ab925a8c48cc8ac8c39c789b656cbf684edb
Beans's lost kittens
0
44
92
2024-02-09T01:37:51Z
Cement
7
Quick (a bit too quick) description of the quest and pointed out 1 (one) location of lose kitten
wikitext
text/x-wiki
In Luncheon, you are able to talk to [[Beans]], who informs you that her kids have run off and hid somewhere. It's possible to know where the lost kittens are for the object they're hidden in shakes periodically. To take them out of their hiding spot, you just have to paint the spots a few times in quick succession.
=== Locations: ===
==== Luncheon: ====
* In the same screen as Beans's house, the tree to the upwards and to the left of her house. The kitten is hidden in the leaves.
742568b6df9c70f430c4ba63b66d74ae8b2ca46f
File:Grapesoda.jpg
6
45
93
2024-02-09T02:20:55Z
SunsetCorvid
9
wikitext
text/x-wiki
Grape Soda is SunsetCorvid's Drawdog-sona. He is a purple, long-furred, dog with deep purple horns and a long, fluffy, tail. He adorns blue fingerless gloves, a grey hoodie, and brown, baggy shorts.
ed1a4ccb44fe9576a11fe1db40830923139b0018
Clothes
0
46
94
2024-02-09T02:31:26Z
Chevreau
8
Created page with "dog wear cute clothing!!! [[File:Pizza character.png|thumb]]"
wikitext
text/x-wiki
dog wear cute clothing!!!
[[File:Pizza character.png|thumb]]
6cf2486e65486ee5d2ca288bfcb02e611ce8a33d
96
94
2024-02-09T02:38:12Z
Chevreau
8
wikitext
text/x-wiki
dog wear cute clothing!!!
[[File:Pizza character.png|thumb]]
{| class="wikitable"
|+
|Bandana
|Gift in Luncheon (-4, 2, -2)
|-
|Sun hat
|Oats
|-
|Sunglasses
|Gift in Potluck (-4, 2, 1)
|}
53d815a67e6549da1e142e2e8010da5cc419f24c
User:SunsetCorvid
2
47
95
2024-02-09T02:32:49Z
SunsetCorvid
9
Added details about myself :]
wikitext
text/x-wiki
Hello, hello! I'm Miles Corvid, AKA SunsetCorvid!!
[[File:Grapesoda.jpg|thumb|Grape Soda]]
My pronouns are He/Him
e887656ae8a406c2bbc7d3dde29b9adfd079a076
Quests
0
43
97
91
2024-02-09T02:41:06Z
Cement
7
Put the chapter 2 quests
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats's requests]]
* [[Beans's lost kittens]]
=== Chapter 2: ===
* [[Art Academy's paintings]]
* [[Olive & Achiote request]]
* [[Holey shop logo]]
=== Chapter 3: ===
=== Chapter 4: ===
e3ba5567491d66b85d328e80c1bceb6a0949e062
99
97
2024-02-09T02:48:10Z
Cement
7
Counting potato
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats's requests]]
* [[Beans's lost kittens]]
=== Chapter 2: ===
* [[Art Academy's paintings]]
* [[Olive & Achiote request]]
* [[Potato custom brush]]
* [[Holey shop logo]]
=== Chapter 3: ===
=== Chapter 4: ===
8e7d4084b2251c17e226c34f281f759785e32b44
104
99
2024-02-09T03:20:05Z
Cement
7
Inserted a few things.
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive & Achiote request]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
bc9c8ccc86bfbbb1dd867cd9fee6d8114bdb2a65
120
104
2024-02-09T05:14:25Z
Cement
7
fix one broken link (the link is still broken)
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
ce5e7d9e3e689e0e3b3bb5bcead8aee9aa5f913d
File:ChicoryIdle.png
6
48
98
2024-02-09T02:47:01Z
SunsetCorvid
9
An idle pose for Chicory.
wikitext
text/x-wiki
== Summary ==
An idle pose for Chicory.
1799be46ffe98fd35eda7038f28eeaa0a8dd2806
Chicory
0
49
100
2024-02-09T02:50:26Z
SunsetCorvid
9
Added Chicory. Will be editing with more info.
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=
|style="Colorful"
}}
[[Category:Characters]]
8bc3ce4334b1d052129210a355d16fda96b41d25
101
100
2024-02-09T02:53:31Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of Chicory: A Colorful Tale.
[[Category:Characters]]
1089ea3ac410600b1a589df4731c2bc0ca78f9aa
102
101
2024-02-09T02:55:21Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale.]]
[[Category:Characters]]
3ad0fe4542b36a20a6ec76c90304a3ff1261db59
126
102
2024-02-09T05:36:28Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale]].
[[Category:Characters]]
c4f51ec9575e32741e4a1152341929434d7db826
132
126
2024-02-09T11:28:01Z
SunsetCorvid
9
Added an appearance section to Chicory's page.
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)<br>[[Blackberry]] (Former mentor)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale]].
== Appearance ==
Within her self-portrait, Chicory is depicted as a brown hare with a pink nose. She adorns a purple cloak over a black shirt and teal pants. She wears gold/orange leggings, and a blue to gold band around the base of her ears.<br>In game, she appears pretty much the same, but is lacking color like everyone else. The player is free to color her as they wish.<br>When her cloak is removed, it is shown she wears suspenders.
[[Category:Characters]]
15309cd6e77c1ac8941ced534c8375126015ccf2
135
132
2024-02-09T11:35:11Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)<br>[[Blackberry]] (Former mentor)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale]].
== Appearance ==
Within her self-portrait, Chicory is depicted as a brown hare with a pink nose. She adorns a purple cloak over a black shirt and teal pants. She wears gold/orange <ref>leggings</ref>, and a blue to gold band around the base of her ears.<br>In game, she appears pretty much the same, but is lacking color like everyone else. The player is free to color her as they wish.<br>When her cloak is removed, it is shown she wears suspenders.
[[Category:Characters]]
962757c7b66961bd8e23aaec07b103053c965d14
136
135
2024-02-09T11:36:34Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)<br>[[Blackberry]] (Former mentor)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale]].
== Appearance ==
Within her self-portrait, Chicory is depicted as a brown hare with a pink nose. She adorns a purple cloak over a black shirt and teal pants. She wears gold/orange <ref>https://discordapp.com/channels/1104488653624975510/1105282258090332200/1108436882817294457</ref>, and a blue to gold band around the base of her ears.<br>In game, she appears pretty much the same, but is lacking color like everyone else. The player is free to color her as they wish.<br>When her cloak is removed, it is shown she wears suspenders.
[[Category:Characters]]
7f938015beb53bc6f3e9d4ffd0d5a062db64305a
138
136
2024-02-09T11:42:02Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)<br>[[Blackberry]] (Former mentor)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale]].
== Appearance ==
Within her self-portrait, Chicory is depicted as a brown hare with a pink nose. She adorns a purple cloak over a black shirt and teal pants. She wears gold/orange leggings<ref>Confirmation that Chicory is wearing leggings.</ref>, and a blue to gold band around the base of her ears.<br>In game, she appears pretty much the same, but is lacking color like everyone else. The player is free to color her as they wish.<br>When her cloak is removed, it is shown she wears suspenders.
== References ==
<references />
[[Category:Characters]]
9240cc365f3076bb2484e4cb1ad8a1558a29df71
139
138
2024-02-09T11:42:39Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)<br>[[Blackberry]] (Former mentor)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale]].
== Appearance ==
Within her self-portrait, Chicory is depicted as a brown hare with a pink nose. She adorns a purple cloak over a black shirt and teal pants. She wears gold/orange leggings<ref>[[:File:Chicory's leggings.jpg|Confirmation that Chicory is wearing leggings.]]</ref>, and a blue to gold band around the base of her ears.<br>In game, she appears pretty much the same, but is lacking color like everyone else. The player is free to color her as they wish.<br>When her cloak is removed, it is shown she wears suspenders.
== References ==
<references />
[[Category:Characters]]
614b1350f2bb5b99fd75c2d521a8c1fe940ecb58
140
139
2024-02-09T11:49:06Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)<br>[[Blackberry]] (Former mentor)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale]].
== Appearance ==
Within her self-portrait, Chicory is depicted as a brown hare with a pink nose. She adorns a purple cloak over a black shirt and teal pants. She wears gold/orange leggings<ref>[[:File:Chicory's leggings.jpg|Confirmation that Chicory is wearing leggings.]]</ref>, and a blue to gold band around the base of her ears.<br>In game, she appears pretty much the same, but is lacking color like everyone else. The player is free to color her as they wish.<br>When her cloak is removed, it is shown she wears suspenders.
== Trivia ==
*Chicory's identifying instrument is the clarinet.
== References ==
<references />
[[Category:Characters]]
351204574a6af33475d34a8f2e89a32c5cd01357
Pizza
0
21
103
80
2024-02-09T03:09:10Z
112.203.131.228
0
adding name snenangians
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]]. In-game, they will be named after the player’s favorite food, but the default name when selecting ''I’m not sure…'' is Pizza.
[[Category:Characters]]
6405adc2093858a7cd4cc665aca26afbcd66e084
File:Kitten Luncheon 1.png
6
50
105
2024-02-09T03:24:13Z
Cement
7
wikitext
text/x-wiki
The kitten right in front of Beans house
5d28cfc1021125272b8c9ac635be92c72e997661
File:Kitten Luncheon 2.png
6
51
106
2024-02-09T03:41:16Z
Cement
7
wikitext
text/x-wiki
Kitten found a screen up and to the right of the entrance of Yum Cave, in Luncheon
01b0ae9167f01eb99052db03d69b31e17f2bb129
File:Kitten Luncheon 3.png
6
52
107
2024-02-09T03:43:03Z
Cement
7
wikitext
text/x-wiki
Kitten found outside of Basil's house.
db38b8e2dcfed8704ecd92b1f364ea46e2444c02
File:Kitten Potluck 1.png
6
53
108
2024-02-09T03:59:55Z
Cement
7
wikitext
text/x-wiki
Kitten in front of Turnip & Grits', Fritter & Granita's and Custard's houses
fed34de8186df0dd0cdea904f49cdeafb3934309
File:Kitten Potluck 2.png
6
54
109
2024-02-09T04:01:39Z
Cement
7
wikitext
text/x-wiki
Kitten 1 screen to the right of Barley's house
ede2b1c10b819b5fc16de9d57f1be8f37638879d
File:Kitten Potluck 3.png
6
55
110
2024-02-09T04:04:44Z
Cement
7
wikitext
text/x-wiki
Kitten found in front of the Painter's Temple
cfc44f30d2745a7be2448495b2e9a272c64a4cb8
File:Hat Ahoy.png
6
56
111
2024-02-09T04:57:03Z
Chevreau
8
Ahoy Hat
wikitext
text/x-wiki
== Summary ==
Ahoy Hat
6bf2fcfce65816ac2bc2c50f7f0d84fb471fbe98
File:Big Gift Sips River Bucket Tool.png
6
57
112
2024-02-09T05:02:00Z
Cement
7
wikitext
text/x-wiki
Big Gift from the margins of Sips River
21f153a14d24f4fcd81d800ee35352a19fe3f78a
113
112
2024-02-09T05:05:06Z
Cement
7
wikitext
text/x-wiki
Big Gift from the margins of Sips River. It contains the Bucket tool.
a2809dd97e5ef18dd1b8898fba22211de7efd92e
File:Gift Luncheon Beanie.png
6
58
114
2024-02-09T05:06:26Z
Cement
7
wikitext
text/x-wiki
Location of gift containing Beanie. One scene up and one and to the right of Yum Cave's entrance in Luncheon.
e2391acf8737ed348ef5f96f346c2c076e7a25b9
File:Gift Luncheon Pocket Jacket.png
6
59
115
2024-02-09T05:07:07Z
Cement
7
wikitext
text/x-wiki
Gift containing Pocket Jacket behind Pea's and Ginger's house
7c9a71b6c452f11c098b2f1abf23c361c77eb3cc
File:Gift Painter's Temple Beret.png
6
60
116
2024-02-09T05:09:08Z
Cement
7
wikitext
text/x-wiki
Location you need to pass to access the gift containing the Beret. It's needed to blow up a bubble in that spot to create the hole.
d5f519588d851d6d44cdbee9ed274df30235e57e
File:Gift Painter's Temple Black Tee.png
6
61
117
2024-02-09T05:10:25Z
Cement
7
wikitext
text/x-wiki
Location you need to blow up a bubble to gain access to gift containing Black Tee.
e93ebe78b804f07f4a2595c172b9a12906957425
File:Gift Nibble Tunnel Black Dress.png
6
62
118
2024-02-09T05:11:27Z
Cement
7
wikitext
text/x-wiki
Location in Nibble Tunnel containing Black dress (It's possible I might have to retake this screenshot)
3092de888e69fb2b0c37cf7e50dc8d34f9e8bb9e
File:Gift Yum Cave Round Glasses.png
6
63
119
2024-02-09T05:12:14Z
Cement
7
wikitext
text/x-wiki
Location of gift containing Round Glasses. The gift is highlighted in yellow. Yum Cave
1a9b970fef3fca435113f3f47e3769c0447581b9
File:Beans.png
6
64
121
2024-02-09T05:28:37Z
SunsetCorvid
9
Beans from Chicory: A Colorful Tale
wikitext
text/x-wiki
== Summary ==
Beans from Chicory: A Colorful Tale
538aca407a4a29b396ef475e25619ce54f24b40c
Beans
0
65
122
2024-02-09T05:31:43Z
SunsetCorvid
9
Created page with "{{Infobox character |image=Beans.png |species=Domestic Cat |location=Luncheon |pronouns=She/Her |occupation=Daycare Owner |relationships=[[Pepper]] (Romantic Partner) }} [[Category:Characters]]"
wikitext
text/x-wiki
{{Infobox character
|image=Beans.png
|species=Domestic Cat
|location=Luncheon
|pronouns=She/Her
|occupation=Daycare Owner
|relationships=[[Pepper]] (Romantic Partner)
}}
[[Category:Characters]]
b9934e38689b092f9d638f46fac5aa185b3d423b
123
122
2024-02-09T05:34:45Z
SunsetCorvid
9
Added to Beans' page.
wikitext
text/x-wiki
{{Infobox character
|image=Beans.png
|species=Domestic Cat
|location=Luncheon
|pronouns=She/Her
|occupation=Daycare Owner
|relationships=[[Pepper]] (Romantic Partner)
}}
'''Beans''' is a minor character within ''Chicory: A Colorful Tale.'' She runs the '''Lost Kids Daycare''' with her partner '''Pepper''' in ''Luncheon.''
[[Category:Characters]]
6f5fdfdbbd33d96a2bc66456ea1f20671ba151aa
124
123
2024-02-09T05:35:14Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|image=Beans.png
|species=Domestic Cat
|location=Luncheon
|pronouns=She/Her
|occupation=Daycare Owner
|relationships=[[Pepper]] (Romantic Partner)
}}
'''Beans''' is a minor character within ''Chicory: A Colorful Tale.'' She runs the '''Lost Kids Daycare''' with her partner [[Pepper]] in ''Luncheon.''
[[Category:Characters]]
5d45f4ee5e1d2af6df43e885c0b6c4220964d5e8
125
124
2024-02-09T05:36:04Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|image=Beans.png
|species=Domestic Cat
|location=Luncheon
|pronouns=She/Her
|occupation=Daycare Owner
|relationships=[[Pepper]] (Romantic Partner)
}}
'''Beans''' is a minor character within [[Chicory: A Colorful Tale]]. She runs the '''Lost Kids Daycare''' with her partner [[Pepper]] in ''Luncheon.''
[[Category:Characters]]
3d2fc5ba654ead6a6b9bf70bd4880c4e9b290265
Clementine
0
23
127
81
2024-02-09T10:56:40Z
Prynmatic
11
wikitext
text/x-wiki
{{Infobox character
|image=Clementine character.png
|species=Dog
|location=Potluck
|pronouns=she/her
|occupation=Art student
|relationships=[[Pizza]] (sibling)
}}
'''Clementine''' is [[Pizza]]'s younger sister.
== Trivia ==
* It is not possible to name the player Clementine through usual methods, as when attempting to do so, the game will ask for the player’s next favorite food instead. However, nothing special happens if one does manage to call themself Clementine.
[[Category:Characters]]
5a28d64c9b284fb1f347b855657867a4a256c349
141
127
2024-02-09T11:50:49Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|image=Clementine character.png
|species=Dog
|location=Potluck
|pronouns=She/Her
|occupation=Art student
|relationships=[[Pizza]] (sibling)
}}
'''Clementine''' is [[Pizza]]'s younger sister.
== Trivia ==
* It is not possible to name the player Clementine through usual methods, as when attempting to do so, the game will ask for the player’s next favorite food instead. However, nothing special happens if one does manage to call themself Clementine.
[[Category:Characters]]
51af71cd96a6345062c8ff1dfce974342618d363
File:Pickle chicory.png
6
66
128
2024-02-09T11:00:45Z
Prynmatic
11
wikitext
text/x-wiki
pickle
a4561d3eb3b70a05c27c8ecfe455b03bd467781c
Pickle
0
67
129
2024-02-09T11:12:01Z
Prynmatic
11
Created page with "{{Infobox character |image=Pickle chicory.png |species=Fennec fox |location=Luncheon |pronouns=they/them |occupation= |relationships=[[Onion]] (pen pal) }} '''Pickle''' is an NPC in Luncheon. Their dialogue uses a unique font ([https://www.dafont.com/five-cents.font Five Cents], whereas most characters use [https://www.dafont.com/domigorgon.font Domigorgon]) and is in all-lowercase, as well as using shorthands such as “lol,” “omg,” and “u” in place of “you..."
wikitext
text/x-wiki
{{Infobox character
|image=Pickle chicory.png
|species=Fennec fox
|location=Luncheon
|pronouns=they/them
|occupation=
|relationships=[[Onion]] (pen pal)
}}
'''Pickle''' is an NPC in Luncheon. Their dialogue uses a unique font ([https://www.dafont.com/five-cents.font Five Cents], whereas most characters use [https://www.dafont.com/domigorgon.font Domigorgon]) and is in all-lowercase, as well as using shorthands such as “lol,” “omg,” and “u” in place of “you.”
== Trivia ==
* Pickle is one of a few NPCs to have unique dialogue changes when the player chooses the same name as them, referring to the player as “other pickle.”
** Among these NPCs, Pickle is the only one who isn’t a developer character.
[[Category:Characters]]
e7b811ef22eb18112b2a3e20a326ab2e4e77395f
133
129
2024-02-09T11:29:07Z
Prynmatic
11
wikitext
text/x-wiki
{{Infobox character
|image=Pickle chicory.png
|species=Fennec fox
|location=Luncheon
|pronouns=they/them
|occupation=
|relationships=[[Onion]] (pen pal)
}}
'''Pickle''' is an NPC in Luncheon. Their dialogue uses a unique font ([https://www.dafont.com/five-cents.font Five Cents], whereas most characters use [https://www.dafont.com/domigorgon.font Domigorgon]) and is in all-lowercase, as well as using shorthands such as “lol,” “omg,” and “u” in place of “you.”
Pickle asks the player if they can borrow the Brush, and, if the player allows them, uses it to draw their face on the floor. They will be sad if the player then draws over their drawing.
== Trivia ==
* Pickle is one of a few NPCs to have unique dialogue changes when the player chooses the same name as them, referring to the player as “other pickle.”
** Among these NPCs, Pickle is the only one who isn’t a developer character.
[[Category:Characters]]
daf67619afa7c69f1b65a9c45546c4350917d000
134
133
2024-02-09T11:33:17Z
Prynmatic
11
wikitext
text/x-wiki
{{Infobox character
|image=Pickle chicory.png
|species=Fennec fox
|location=Luncheon
|pronouns=they/them
|occupation=
|relationships=[[Onion]] (pen pal)
}}
'''Pickle''' is an NPC in Luncheon. Their dialogue uses a unique font ([https://www.dafont.com/five-cents.font Five Cents], whereas most characters use [https://www.dafont.com/domigorgon.font Domigorgon]) and is in all-lowercase, as well as using shorthands such as “lol,” “omg,” and “u” in place of “you.”
Pickle asks the player if they can borrow the Brush, and, if the player allows them, uses it to draw their face on the floor. They will be sad if the player then draws over their drawing.
== Appearance ==
Pickle is a short fennec fox with large ears and a large tail wearing a striped tank dress. In the artwork for the [[Chicory: The Sounds of Picnic Province]] album, Pickle is shown with orange fur, and their dress with blue and white stripes. In-game, however, their color palette can be decided and changed by the player like any other character.
== Dialogue ==
uhh buds or smth lol
== Trivia ==
* Pickle is one of a few NPCs to have unique dialogue changes when the player chooses the same name as them, referring to the player as “other pickle.”
** Among these NPCs, Pickle is the only one who isn’t a developer character.
[[Category:Characters]]
741688cd41b1658f40a3d80fd0129ff7d0998a5c
File:Onion chicory.png
6
68
130
2024-02-09T11:15:24Z
Prynmatic
11
wikitext
text/x-wiki
onion
6ac8c09b23dfda5c22b9075292cb6e505c4b8fbf
Onion
0
69
131
2024-02-09T11:20:56Z
Prynmatic
11
can someone who knows more about birds be more specific about their species LOL
wikitext
text/x-wiki
{{Infobox character
|image=onion chicory.png
|species=Bird*
|location=Dinners
|pronouns=they/them
|occupation=
|relationships=[[Pickle]] (pen pal)
}}
'''Onion''' is an NPC in Dinners. They are (anonymous) pen pals with [[Pickle]]. During the mail quest, they read out a letter in which Pickle expresses their desire to make more friends.
[[Category:Characters]]
873e1329d6c0db36d30391633157f94109823200
143
131
2024-02-09T11:52:04Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|image=onion chicory.png
|species=Bird*
|location=Dinners
|pronouns=They/Them
|occupation=
|relationships=[[Pickle]] (pen pal)
}}
'''Onion''' is an NPC in Dinners. They are (anonymous) pen pals with [[Pickle]]. During the mail quest, they read out a letter in which Pickle expresses their desire to make more friends.
[[Category:Characters]]
265dad94b9dd865216755669b6be6998b60ceb17
File:Chicory's leggings.jpg
6
70
137
2024-02-09T11:39:21Z
SunsetCorvid
9
Discord screenshot of confirmation that Chicory is wearing leggings and not bandages.
wikitext
text/x-wiki
== Summary ==
Discord screenshot of confirmation that Chicory is wearing leggings and not bandages.
a61444ec59a07a78ae0ef9e181fbfe00ffc61087
Curry
0
41
142
88
2024-02-09T11:51:22Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|image=Curry character.png
|species=Dog
|location=Brekkie
|gender=Male
|pronouns=He/Him
|occupation=Sweets Shop Owner
}}
Curry provides a side-quest for the player having the player design a custom treat.
== Trivia ==
* When the player achieves 100% game completion, Curry will call the player and visit the players house.
* Curry is the Chicorysona of developer Greg Lobanov.
* Curry has special lines if the player has the same name as Curry.
[[Category:Characters]]
23d50515c202eaa70f8ac01bad04fc9426ab717f
Pickle
0
67
144
134
2024-02-09T11:52:27Z
SunsetCorvid
9
wikitext
text/x-wiki
{{Infobox character
|image=Pickle chicory.png
|species=Fennec Fox
|location=Luncheon
|pronouns=They/Them
|occupation=
|relationships=[[Onion]] (pen pal)
}}
'''Pickle''' is an NPC in Luncheon. Their dialogue uses a unique font ([https://www.dafont.com/five-cents.font Five Cents], whereas most characters use [https://www.dafont.com/domigorgon.font Domigorgon]) and is in all-lowercase, as well as using shorthands such as “lol,” “omg,” and “u” in place of “you.”
Pickle asks the player if they can borrow the Brush, and, if the player allows them, uses it to draw their face on the floor. They will be sad if the player then draws over their drawing.
== Appearance ==
Pickle is a short fennec fox with large ears and a large tail wearing a striped tank dress. In the artwork for the [[Chicory: The Sounds of Picnic Province]] album, Pickle is shown with orange fur, and their dress with blue and white stripes. In-game, however, their color palette can be decided and changed by the player like any other character.
== Dialogue ==
uhh buds or smth lol
== Trivia ==
* Pickle is one of a few NPCs to have unique dialogue changes when the player chooses the same name as them, referring to the player as “other pickle.”
** Among these NPCs, Pickle is the only one who isn’t a developer character.
[[Category:Characters]]
a8778353b5b0aeade903c5f93a83b4dc3226532a
159
144
2024-02-09T14:37:05Z
Ngyikp
2
add gallery
wikitext
text/x-wiki
{{Infobox character
|image=Pickle chicory.png
|species=Fennec Fox
|location=Luncheon
|pronouns=They/Them
|occupation=
|relationships=[[Onion]] (pen pal)
}}
'''Pickle''' is an NPC in Luncheon. Their dialogue uses a unique font ([https://www.dafont.com/five-cents.font Five Cents], whereas most characters use [https://www.dafont.com/domigorgon.font Domigorgon]) and is in all-lowercase, as well as using shorthands such as “lol,” “omg,” and “u” in place of “you.”
Pickle asks the player if they can borrow the Brush, and, if the player allows them, uses it to draw their face on the floor. They will be sad if the player then draws over their drawing.
== Appearance ==
Pickle is a short fennec fox with large ears and a large tail wearing a striped tank dress. In the artwork for the [[Chicory: The Sounds of Picnic Province]] album, Pickle is shown with orange fur, and their dress with blue and white stripes. In-game, however, their color palette can be decided and changed by the player like any other character.
== Dialogue ==
uhh buds or smth lol
== Trivia ==
* Pickle is one of a few NPCs to have unique dialogue changes when the player chooses the same name as them, referring to the player as “other pickle.”
** Among these NPCs, Pickle is the only one who isn’t a developer character.
== Gallery ==
<gallery>
The Sounds of Picnic Province album.png|Pickle as seen on the [[Chicory: The Sounds of Picnic Province]] album cover|link=Chicory: The Sounds of Picnic Province
</gallery>
[[Category:Characters]]
7b0367d3f192c1c63ffedce89ae7f0b4cb55b609
Pizza
0
21
145
103
2024-02-09T11:52:58Z
Prynmatic
11
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]]. In-game, they will be named after the player’s favorite food, but the default name when selecting ''I’m not sure…'' is Pizza.
== Trivia ==
* Pizza’s identifying instrument is the recorder.
[[Category:Characters]]
500ea23bf83e8a8300a0aeaa3fb845added7670e
146
145
2024-02-09T11:53:57Z
Prynmatic
11
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)<br>[[Mom]] (mother)<br>[[Dad]] (father)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]]. In-game, they will be named after the player’s favorite food, but the default name when selecting ''I’m not sure…'' is Pizza.
== Trivia ==
* Pizza’s identifying instrument is the recorder.
[[Category:Characters]]
25f549a82eadc6771847ce7c4b7af3dd0020d36d
161
146
2024-02-09T14:41:59Z
Ngyikp
2
add gallery
wikitext
text/x-wiki
{{Infobox character
|title=Pizza
|image=Pizza character.png
|species=Dog
|location=Luncheon
|pronouns=Any (player's choice)
|occupation=Wielder<br>Janitor (Formerly)<br>Barista (formerly)
|relationships=[[Clementine]] (sister)<br>[[Mom]] (mother)<br>[[Dad]] (father)
|style="I do my best"
}}
'''Pizza''' is the main playable protagonist of [[Chicory: A Colorful Tale]]. In-game, they will be named after the player’s favorite food, but the default name when selecting ''I’m not sure…'' is Pizza.
== Trivia ==
* Pizza’s identifying instrument is the recorder.
== Gallery ==
<gallery>
Original Soundtrack album.png|Pizza as seen on the [[Chicory: A Colorful Tale (Original Soundtrack)|original soundtrack]] album cover|link=Chicory: A Colorful Tale (Original Soundtrack)
</gallery>
[[Category:Characters]]
8189ab52fbe24ee77ddfc2e5ee8ae824dc634708
Clementine
0
23
147
141
2024-02-09T11:54:21Z
Prynmatic
11
wikitext
text/x-wiki
{{Infobox character
|image=Clementine character.png
|species=Dog
|location=Potluck
|pronouns=She/Her
|occupation=Art student
|relationships=[[Pizza]] (sibling)<br>[[Mom]] (mother)<br>[[Dad]] (father)
}}
'''Clementine''' is [[Pizza]]'s younger sister.
== Trivia ==
* It is not possible to name the player Clementine through usual methods, as when attempting to do so, the game will ask for the player’s next favorite food instead. However, nothing special happens if one does manage to call themself Clementine.
[[Category:Characters]]
07a185a0d5bf6d6d2a2e17cb480de08a663a80f2
188
147
2024-02-09T18:14:31Z
Prynmatic
11
wikitext
text/x-wiki
{{Infobox character
|image=Clementine character.png
|species=Dog
|location=Potluck
|pronouns=She/Her
|occupation=Art student
|relationships=[[Pizza]] (sibling)<br>[[Mom]] (mother)<br>[[Dad]] (father)<br>[[Radish]] (best friend)
}}
'''Clementine''' is [[Pizza]]'s younger sister.
== Trivia ==
* It is not possible to name the player Clementine through usual methods, as when attempting to do so, the game will ask for the player’s next favorite food instead. However, nothing special happens if one does manage to call themself Clementine.
[[Category:Characters]]
4c3a082fd7fc3546f168ea3627fc960e0b6ed42f
File:GameGrapeSoda.png
6
71
148
2024-02-09T11:57:00Z
SunsetCorvid
9
Grape Soda displayed ingame.
wikitext
text/x-wiki
== Summary ==
Grape Soda displayed ingame.
df6d151445a5d20e95dade246b35828911642187
User:SunsetCorvid
2
47
149
95
2024-02-09T11:58:43Z
SunsetCorvid
9
wikitext
text/x-wiki
Hello, hello! I'm Miles Corvid, AKA SunsetCorvid!!
[[File:Grapesoda.jpg|thumb|Grape Soda]]
My pronouns are He/Him
[[File:GameGrapeSoda.png|100px]]
cd8dc19e01430971872ae521fa39511e9efb2652
Curry
0
41
150
142
2024-02-09T12:02:00Z
Prynmatic
11
wikitext
text/x-wiki
{{Infobox character
|image=Curry character.png
|species=Dog
|location=Brekkie
|gender=Male
|pronouns=He/Him
|occupation=Sweets Shop Owner
}}
Curry is an NPC in Brekkie. He provides a side-quest for the player having the player design a custom treat.
== Trivia ==
* Curry is the “Chicorysona” of developer [[Greg Lobanov]].
* Curry is one of a few NPCs to have unique dialogue when the player chooses the same name as them.
* When the player achieves 100% game completion, Curry will call the player and visit the player’s house, along with the other developer Chicorysonas.
[[Category:Characters]]
4cbe22cee76146f1efe17cd156c23337320eae00
User:Prynmatic
2
72
151
2024-02-09T12:03:26Z
Prynmatic
11
Created page with "pee dog"
wikitext
text/x-wiki
pee dog
7d5ffdb0073420eb73c2bba7434dc0d1ee330638
File:JdavisBro.png
6
73
152
2024-02-09T12:07:42Z
JdavisBro
12
wikitext
text/x-wiki
jdavis
a6043a059331789899fcd6238d9fdd7ab2ab417a
User:JdavisBro
2
74
153
2024-02-09T12:08:08Z
JdavisBro
12
jdavis
wikitext
text/x-wiki
[[File:JdavisBro.png|thumb|alt=jdavis|jdavis]]
jdavis
bdb5ca6c0f776d602880540069c4cbc27d961a3a
Quests
0
43
154
120
2024-02-09T14:24:16Z
Cement
7
Inserted one quest
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
32a864d54560d117b133ec5eefb24261e5ed9049
165
154
2024-02-09T15:08:35Z
Cement
7
fix one broken link (the link is still broken)
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats|Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
de72d7eb3a7085b706f6e452fbd52cc69c0061ec
187
165
2024-02-09T17:53:14Z
Cement
7
Put two chapter 4 quests
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats|Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
* [[Mail Delivery|Mail delivery]]
* [[Litter|Litter collecting]]
9dc949ddeb433f26c658801225e0c0f64b881443
194
187
2024-02-09T20:41:44Z
Cement
7
Inserted one quest
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats|Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
* [[Mail Delivery|Mail delivery]]
* [[Litter|Litter collecting]]
* [[Hummus|Hummus' garden]]
ee0620e3e6d089def7474e7b775bfb89bca53b9b
195
194
2024-02-09T20:44:23Z
Cement
7
Inserted one quest
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats|Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
* [[Mail Delivery|Mail delivery]]
* [[Litter|Litter collecting]]
* [[Hummus|Hummus' garden]]
=== Chapter 5: ===
* [[Gelato|Gelato's photos]]
4923ea8225c99528912ba5d3bd7f203029908b66
MediaWiki:Mainpage-title
8
75
155
2024-02-09T14:24:49Z
Ngyikp
2
add main page title
wikitext
text/x-wiki
Welcome to the Chicory: A Colorful Tale wiki!
8dfc93039cc8ebe178e497cf715936286920db60
MediaWiki:Mainpage-title-loggedin
8
76
156
2024-02-09T14:25:22Z
Ngyikp
2
add title
wikitext
text/x-wiki
Welcome to the Chicory: A Colorful Tale wiki!
8dfc93039cc8ebe178e497cf715936286920db60
MediaWiki:Copyright
8
77
157
2024-02-09T14:31:38Z
Ngyikp
2
update copyright
wikitext
text/x-wiki
Content is available under $1 unless otherwise noted.
Chicory: A Colorful Tale™ © 2021 Greg Lobanov. All rights reserved. Finji® and regal weasel and crown logo are trademarks of Finji, LLC.
d9b2d922887db6b85e8abce0674b023ce5a511af
158
157
2024-02-09T14:32:08Z
Ngyikp
2
line break
wikitext
text/x-wiki
Content is available under $1 unless otherwise noted.<br>
Chicory: A Colorful Tale™ © 2021 Greg Lobanov. All rights reserved. Finji® and regal weasel and crown logo are trademarks of Finji, LLC.
db471ea3c6f01bc4df519b125ba5fa175fc3dcf7
Onion
0
69
160
143
2024-02-09T14:39:33Z
Ngyikp
2
add gallery
wikitext
text/x-wiki
{{Infobox character
|image=onion chicory.png
|species=Bird*
|location=Dinners
|pronouns=They/Them
|occupation=
|relationships=[[Pickle]] (pen pal)
}}
'''Onion''' is an NPC in [[Dinners]]. They are (anonymous) pen pals with [[Pickle]]. During the mail quest, they read out a letter in which Pickle expresses their desire to make more friends.
== Gallery ==
<gallery>
The Sounds of Picnic Province album.png|Onion as seen on the [[Chicory: The Sounds of Picnic Province]] album cover|link=Chicory: The Sounds of Picnic Province
</gallery>
[[Category:Characters]]
747d268f3ec3da7ddedd714d01d2c9e2acbf55ac
File:Cement having an existential breakdown (the universe is breaking).png
6
78
162
2024-02-09T14:42:12Z
Cement
7
wikitext
text/x-wiki
Drawing of Cement for my user page.
cc219b7b29de94500481cd70c28f7a152c5f2907
User:Cement
2
79
163
2024-02-09T14:52:04Z
Cement
7
Made my user page
wikitext
text/x-wiki
[[File:Cement having an existential breakdown (the universe is breaking).png|alt=Cement|thumb|CementPronounce: it/stares/backProfession: don't look back
''Rigor Mortis'']]
The end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not the end is not they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear they are listening they can hear don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it don't touch it
=== Hands up, bucko ===
Hands up, bucko.
Why this ship?
Why not this ship?
We're taking medical supplies to the Americas.
You can leave it with us, we're going there, we can take it with us, save you a trip.
Ah, that's nice. Thank you.
You're welcome. Now back to what we were talking. Give us your booty.
Oh yeah, I'd forgotten.
ac225a53f11a922ea0b94b5c2aa712dd0cd25977
Template:Refn
10
80
164
2024-02-09T15:07:08Z
Ngyikp
2
Import [[:w:Template:Refn]]
wikitext
text/x-wiki
<includeonly>{{#if:{{{follow|}}}|{{#tag:ref|{{{1|{{{refn|}}}}}}|group={{{group|}}}|follow={{{follow|}}}}}|{{#if:{{{name|}}}|{{#tag:ref|{{{1|{{{refn|}}}}}}|name={{{name|}}}|group={{{group|}}}}}|{{#tag:ref|{{{1|{{{refn|}}}}}}|group={{{group|}}}}}}}}}</includeonly><noinclude>{{documentation}}</noinclude>
9fd4ba12eab57eadfed1197d60df81947547d276
Template:En-WP attribution notice
10
81
167
166
2024-02-09T15:09:16Z
Ngyikp
2
1 revision imported from [[:dev:Template:En-WP_attribution_notice]]
wikitext
text/x-wiki
<includeonly>{| style="border: 1px solid #e0e0e0; background-color: #f8f8f8; color:black; margin: 5px auto; width: 60%;"
|-
| style="padding: 3px 10px;" | [[File:Wikipedia-logo-v2.svg|30px|Wikipedia logo]]
| style="font-size: 90%; padding: 3px;" | This page uses material from the Wikipedia page [[w:en:{{{1|{{FULLPAGENAME}}}}}|{{{1|{{FULLPAGENAME}}}}}]], which is released under the [[w:en:Wikipedia:Text of Creative Commons Attribution-ShareAlike 3.0 Unported License|Creative Commons Attribution-ShareAlike 3.0 Unported License]] ([https://en.wikipedia.org/w/index.php?title={{urlencode:{{{1|{{FULLPAGENAME}}}}}}}&action=history view authors]).
|}
[[Category:Pages from English Wikipedia]]</includeonly>
<noinclude>
{{documentation}}
{{En-WP attribution notice|Template:En-WP attribution notice}}
</noinclude>
22d054cdfdc01cc48994b02dc0ccde4265694650
Template:En-WP attribution notice/doc
10
82
169
168
2024-02-09T15:09:19Z
Ngyikp
2
1 revision imported from [[:dev:Template:En-WP_attribution_notice/doc]]
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This template is used to provide attribution to Wikipedia from external wikis, as described on [[w:en:Wikipedia:Reusing Wikipedia content#Example notice|Wikipedia:Reusing Wikipedia content]].
=== Usage ===
{{En-WP attribution notice|''page name''}}
The page name should be the name of the Wikipedia page that is being attributed. If no page name is specified, the name of the current page on the local wiki is used.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
5cd6463862f7ea04718d41b3b9aa554927f65c10
Template:Refn/doc
10
83
170
2024-02-09T15:09:35Z
Ngyikp
2
Created page with "{{En-WP attribution notice|Template:Refn}}"
wikitext
text/x-wiki
{{En-WP attribution notice|Template:Refn}}
533cf217b002c4664704f02845675fbe0479c22e
171
170
2024-02-09T15:10:58Z
Ngyikp
2
link to Wikipedia help pages about this template
wikitext
text/x-wiki
See [[:w:Template:Refn]] and [[:wp:Nesting footnotes]] for usage of this template.
{{En-WP attribution notice|Template:Refn}}
54d361cf0066280a1662803be44917b6465383bc
Chicory: A Colorful Tale (Original Soundtrack)
0
32
172
61
2024-02-09T15:14:47Z
Ngyikp
2
update citation
wikitext
text/x-wiki
{{Infobox album
|image=Original Soundtrack album.png
|released=June 10, 2021
|artist=[[Lena Raine]]
|length=2 hours 36 minutes
|label=Radical Dreamland
}}
== Tracklist ==
# Blank Canvas
# A Colorful Tale
# The Town of Luncheon
# Supper Woods
# Eyes in the Darkness
# Not Anymore
# Potluck
# Art Academy
# Appie Foothills
# Elevenses
# Wielder Temple
# Probably Ancient Evil
# A Wielder's Duty
# Just Like You
# Sips River
# Gulp Swamp
# Mistake
# Erase You
# Seeds of Doubt
# Messed Up Person
# Letter From the Queen
# Dinners, the Big City
# Clementine
# Teatime Meadows
# Caves
# Grub Deep
# Her Wretched Utterances
# Feast
# Alone With Myself
# Nobody
# uoY mA I
# Abandon Me
# Chicory's Theme
# Banquet Rainforest {{refn|group=note|Misspelled as Banquest Rainforest on various streaming services due to a typo.<ref>[[Lena Raine|Lena Raine [@kuraine]]] (June 16, 2021). [https://twitter.com/kuraine/status/1405221495488405507 "fun embarrassing note: the track "Banquet Rainforest" is, sadly, showing up as "Banquest Rainforest" on distro storefronts & streaming services. I updated it & it will be fixed soon!! but for now please override your brain from acknowledging my silly typo"] (Tweet) – via [[:w:Twitter|Twitter]].</ref>}}
# Dessert Mountain
# Song of the Wielders
# Simmer Springs
# Turnabout Squeeze
# Spoons Island
# More Than Myself
# Color Lab
# Calling Home
# Brekkie
# Brunch Canyon
# Buried Deep
# MONSTER
# She's Gone
# The Wielders' Legacy
# The Dark Forest
# You're Not Real
# Just Reach Out
# Something New
# Once More Into the Dark
# History Against Us
# Do the Impossible
# Change Everything
# The Mountain Top
# The Tale End
# A Fresh Start
# This Colorful World
== Notes ==
<references group="note" />
== References ==
<references />
== External links ==
* [https://medium.com/@kuraine/composing-for-chicory-motifs-memories-9d7351555694 Full liner notes]
* [https://radicaldreamland.bandcamp.com/album/chicory-a-colorful-tale-original-soundtrack Bandcamp]
* [https://open.spotify.com/album/6DdR2sAfxq6qhsYhVIa83Q Spotify]
* [https://music.apple.com/sa/album/chicory-a-colorful-tale-original-soundtrack/1571468951 Apple Music]
[[Category:Soundtrack albums]]
c90c4eb986e45c30ba3094e0956135724e36e92e
182
172
2024-02-09T15:39:51Z
Ngyikp
2
/* External links */ resort category
wikitext
text/x-wiki
{{Infobox album
|image=Original Soundtrack album.png
|released=June 10, 2021
|artist=[[Lena Raine]]
|length=2 hours 36 minutes
|label=Radical Dreamland
}}
== Tracklist ==
# Blank Canvas
# A Colorful Tale
# The Town of Luncheon
# Supper Woods
# Eyes in the Darkness
# Not Anymore
# Potluck
# Art Academy
# Appie Foothills
# Elevenses
# Wielder Temple
# Probably Ancient Evil
# A Wielder's Duty
# Just Like You
# Sips River
# Gulp Swamp
# Mistake
# Erase You
# Seeds of Doubt
# Messed Up Person
# Letter From the Queen
# Dinners, the Big City
# Clementine
# Teatime Meadows
# Caves
# Grub Deep
# Her Wretched Utterances
# Feast
# Alone With Myself
# Nobody
# uoY mA I
# Abandon Me
# Chicory's Theme
# Banquet Rainforest {{refn|group=note|Misspelled as Banquest Rainforest on various streaming services due to a typo.<ref>[[Lena Raine|Lena Raine [@kuraine]]] (June 16, 2021). [https://twitter.com/kuraine/status/1405221495488405507 "fun embarrassing note: the track "Banquet Rainforest" is, sadly, showing up as "Banquest Rainforest" on distro storefronts & streaming services. I updated it & it will be fixed soon!! but for now please override your brain from acknowledging my silly typo"] (Tweet) – via [[:w:Twitter|Twitter]].</ref>}}
# Dessert Mountain
# Song of the Wielders
# Simmer Springs
# Turnabout Squeeze
# Spoons Island
# More Than Myself
# Color Lab
# Calling Home
# Brekkie
# Brunch Canyon
# Buried Deep
# MONSTER
# She's Gone
# The Wielders' Legacy
# The Dark Forest
# You're Not Real
# Just Reach Out
# Something New
# Once More Into the Dark
# History Against Us
# Do the Impossible
# Change Everything
# The Mountain Top
# The Tale End
# A Fresh Start
# This Colorful World
== Notes ==
<references group="note" />
== References ==
<references />
== External links ==
* [https://medium.com/@kuraine/composing-for-chicory-motifs-memories-9d7351555694 Full liner notes]
* [https://radicaldreamland.bandcamp.com/album/chicory-a-colorful-tale-original-soundtrack Bandcamp]
* [https://open.spotify.com/album/6DdR2sAfxq6qhsYhVIa83Q Spotify]
* [https://music.apple.com/sa/album/chicory-a-colorful-tale-original-soundtrack/1571468951 Apple Music]
[[Category:Soundtrack albums|Original Soundtrack]]
9a7728c63e05c03b0ab2042729275ea534b87951
File:An Afternoon in Luncheon album.png
6
84
173
2024-02-09T15:23:37Z
Ngyikp
2
For [[Chicory: An Afternoon in Luncheon]]
Collected from https://www.materiacollective.com/music/chicory-an-afternoon-in-luncheon
wikitext
text/x-wiki
== Summary ==
For [[Chicory: An Afternoon in Luncheon]]
Collected from https://www.materiacollective.com/music/chicory-an-afternoon-in-luncheon
d5fb97a0d0656a475e7bc58737e9403833a5e759
User:Ngyikp
2
85
174
2024-02-09T15:27:54Z
Ngyikp
2
start page to remove the annoying red link
wikitext
text/x-wiki
Hi there! I'm the admin of this wiki, feel free to contact me about any wiki issues or if you need help on editing.
You can also find me as '''ngyikp''' on Discord.
55135ed23a5882cbc9d81414cc8f3cbac34e0978
Oats
0
86
175
2024-02-09T15:28:01Z
Cement
7
I'm gonna desscribe Oats's requests (and also, I'm seeing if I used the character infobox correctly)
wikitext
text/x-wiki
{{Infobox character
|image=onion chicory.png
|species=sheep
|location=Luncheon
<gallery>
</gallery>
|pronouns=He/him
|occupation=
|relationships=
}}
[[Oats]] is a minor character who resides in Luncheon. He can be found inside and outside the Cafe. When you talk to him, he gives you a quest to show him a clothing combination.
=== Oats's requests. ===
==== 1st: A Beanie and a Pocket Jacket ====
To complete this one, you need to wear a beanie and a pocket jacket. Both of them can be found in Chapter 1, and completing this request will earn you the item Shades.
==== 2nd: The sun over the flowers ====
35fad6275ec19ea6e5147b54f745dd9d89316ffa
177
175
2024-02-09T15:30:55Z
Cement
7
Changing the picture
wikitext
text/x-wiki
{{Infobox character
|image=
[[File:Oats infobox image|frameless]]
|species=sheep
|location=Luncheon
<gallery>
</gallery>
|pronouns=He/him
|occupation: professional cool dude
}}
[[Oats]] is a minor character who resides in Luncheon. He can be found inside and outside the Cafe. When you talk to him, he gives you a quest to show him a clothing combination.
=== Oats's requests. ===
==== 1st: A Beanie and a Pocket Jacket ====
To complete this one, you need to wear a beanie and a pocket jacket. Both of them can be found in Chapter 1, and completing this request will earn you the item Shades.
==== 2nd: The sun over the flowers ====
24775b64e074e574f3e54f5b1719fc91b67766c7
178
177
2024-02-09T15:31:27Z
Cement
7
Trying to fix the image
wikitext
text/x-wiki
{{Infobox character
|image=Oats infobox image.png
|species=sheep
|location=Luncheon
<gallery>
</gallery>
|pronouns=He/him
|occupation: professional cool dude
}}
[[Oats]] is a minor character who resides in Luncheon. He can be found inside and outside the Cafe. When you talk to him, he gives you a quest to show him a clothing combination.
=== Oats's requests. ===
==== 1st: A Beanie and a Pocket Jacket ====
To complete this one, you need to wear a beanie and a pocket jacket. Both of them can be found in Chapter 1, and completing this request will earn you the item Shades.
==== 2nd: The sun over the flowers ====
7f941dabeee408786f4f33a664d8fd27d224e83f
179
178
2024-02-09T15:31:53Z
Cement
7
fixing infobox
wikitext
text/x-wiki
{{Infobox character
|image=Oats infobox image.png
|species=sheep
|location=Luncheon
|pronouns=He/him
|occupation: professional cool dude
}}
[[Oats]] is a minor character who resides in Luncheon. He can be found inside and outside the Cafe. When you talk to him, he gives you a quest to show him a clothing combination.
=== Oats's requests. ===
==== 1st: A Beanie and a Pocket Jacket ====
To complete this one, you need to wear a beanie and a pocket jacket. Both of them can be found in Chapter 1, and completing this request will earn you the item Shades.
==== 2nd: The sun over the flowers ====
24cb5a6178fafec7fe6c86456d8f0793ba484c81
183
179
2024-02-09T15:42:21Z
Cement
7
Just finishing a sentence. I'll complete it in a minute.
wikitext
text/x-wiki
{{Infobox character
|image=Oats infobox image.png
|species=sheep
|location=Luncheon
|pronouns=He/him
|occupation: professional cool dude
}}
[[Oats]] is a minor character who resides in Luncheon. He can be found inside and outside the Cafe. When you talk to him, he gives you a quest to show him a clothing combination.
=== Oats's requests. ===
==== 1st: A Beanie and a Pocket Jacket ====
To complete this one, you need to talk to Oats while wearing a beanie and a pocket jacket. Both of them can be found in Chapter 1, and completing this request will earn you the item Shades.
==== 2nd: The sun over the flowers ====
To complete this request, you need to talk to Oats while wearing a Sunhat and a Flower Dress. The sunhat can be found in Chapter 1, while the Flower Dress can be found [PLACEHOLDER], and completing this requests will earn you the item [PLACEHOLDER]
8a31647614cea4e3170a6f8c1ade54e0d6755fc4
186
183
2024-02-09T17:04:39Z
Cement
7
Put some links around
wikitext
text/x-wiki
{{Infobox character
|image=Oats infobox image.png
|species=sheep
|location=Luncheon
|pronouns=He/him
|occupation: professional cool dude
}}
[[Oats]] is a minor character who resides in [[Luncheon]]. He can be found inside and outside the [[Cafe]]. When you talk to him, he gives you a [[Quests|quest]] to show him a [[clothing]] combination.
=== Oats's requests. ===
==== 1st: A Beanie and a Pocket Jacket ====
To complete this one, you need to talk to Oats while wearing a beanie and a pocket jacket. Both of them can be found in Chapter 1, and completing this request will earn you the item Shades.
==== 2nd: The sun over the flowers ====
To complete this request, you need to talk to Oats while wearing a Sunhat and a Flower Dress. The sunhat can be found in Chapter 1, while the Flower Dress can be found [PLACEHOLDER], and completing this requests will earn you the item [PLACEHOLDER]
4d800ab9718078da8443a1074d1ec51260735353
193
186
2024-02-09T20:41:03Z
Cement
7
Filled some holes
wikitext
text/x-wiki
{{Infobox character
|image=Oats infobox image.png
|species=sheep
|location=Luncheon
|pronouns=He/him
|occupation: professional cool dude
}}
[[Oats]] is a minor character who resides in [[Luncheon]]. He can be found inside and outside the [[Cafe]]. When you talk to him, he gives you a [[Quests|quest]] to show him a [[clothing]] combination.
=== Oats's requests. ===
==== 1st: A Beanie and a Pocket Jacket ====
To complete this one, you need to talk to Oats while wearing a beanie and a pocket jacket. Both of them can be found in Chapter 1, and completing this request will earn you the item Shades.
==== 2nd: The sun over the flowers ====
To complete this request, you need to talk to Oats while wearing a Sunhat and a Flower Dress. The sunhat can be found in Chapter 1, while the Flower Dress can be found in Chapter 2, and completing this requests will earn you the item Tinted Glasses
298ecac21b34aea699c590f23872afe0b08b8def
File:Oats infobox image.png
6
87
176
2024-02-09T15:28:46Z
Cement
7
wikitext
text/x-wiki
It's Oats
dc9a6aafd0663b304dbee2213f87165c087f1c22
Chicory: An Afternoon in Luncheon
0
88
180
2024-02-09T15:31:56Z
Ngyikp
2
start page
wikitext
text/x-wiki
{{Infobox album
|image=An Afternoon in Luncheon album.png
|released=August 15, 2019
|artist=[[Lena Raine]]
|length=15 minutes
|label=Materia Collective
}}
'''Chicory: An Afternoon in Luncheon''' is a demo EP featuring older versions of songs from [[Chicory: A Colorful Tale]]. The full soundtrack is available as [[Chicory: A Colorful Tale (Original Soundtrack)]].
== Tracklist ==
# Blank Canvas
# Cleaning for Chicory
# The Tale Begins
# The Town of Luncheon
# Leaving Luncheon<ref group="note">This song is not heard on the final game or soundtrack.</ref>
# Supper Woods
# Eyes in the Darkness
# Calling Home
== Notes ==
<references group="note" />
== External links ==
* [https://www.materiacollective.com/music/chicory-an-afternoon-in-luncheon Chicory: An Afternoon in Luncheon - Materia Collective]
* [https://radicaldreamland.bandcamp.com/album/chicory-an-afternoon-in-luncheon Bandcamp]
* [https://open.spotify.com/album/5dOr2q5XlsnYtfuy6THQ4Z Spotify]
* [https://music.apple.com/us/album/chicory-an-afternoon-in-luncheon/1476812101 Apple Music]
[[Category:Soundtrack albums|An Afternoon in Luncheon]]
706508e1df1ce32478a5edc580966aeb15face32
Chicory: The Sounds of Picnic Province
0
35
181
64
2024-02-09T15:39:40Z
Ngyikp
2
/* External links */ resort categroy
wikitext
text/x-wiki
{{Infobox album
|image=The Sounds of Picnic Province album.png
|released=June 24, 2021
|artist=[[Lena Raine]]
|length=43 minutes
|label=Radical Dreamland
}}
== Tracklist ==
# The Outskirts of Luncheon
# Lost in Supper Woods
# Peering into Potluck
# A Stroll Through Appie Foothills
# Indoors at Elevenses
# Dipping Your Feet in Sips River
# Stuck in Gulp Swamp
# Lingering With Seeds of Doubt
# The Alleys and Rooftops of Dinners
# The Slice Shop
# Singing in Teatime Meadows
# Buzzing Around Feast
# Under an Umbrella in Banquet Rainforest
# The View From Dessert Mountain
# Sleuthing Around Simmer Springs
# Soaking on Spoons Island
# Watching the Waves at Brekkie
# The Distant Dark Forest
# Coming Home to Luncheon
== External links ==
* [https://radicaldreamland.bandcamp.com/album/chicory-the-sounds-of-picnic-province Bandcamp]
* [https://open.spotify.com/album/7fIiMj5sBhQyvWX65Kcz6u Spotify]
* [https://music.apple.com/us/album/chicory-the-sounds-of-picnic-province/1581532328 Apple Music]
[[Category:Soundtrack albums|The Sounds of Picnic Province]]
081c22bebc85e4824f386157e933865d05f8e21e
File:Piano Collections album.png
6
89
184
2024-02-09T15:47:11Z
Ngyikp
2
For [[Chicory Piano Collections]]
Collected from https://audiosalad.ffm.to/chicorypianocollections
wikitext
text/x-wiki
== Summary ==
For [[Chicory Piano Collections]]
Collected from https://audiosalad.ffm.to/chicorypianocollections
2a1135407d0e55f3843fbb33b4bc76a463c64c46
Chicory Piano Collections
0
90
185
2024-02-09T15:53:52Z
Ngyikp
2
start page
wikitext
text/x-wiki
{{Infobox album
|image=Piano Collections album.png
|released=November 17, 2022
|artist=[[Trevor Alan Gomes]] and [[Lena Raine]]
|length=46 minutes
|label=
}}
== Tracklist ==
# Town of Luncheon
# Supper Woods
# Chicory's Theme
# Dinners, the Big City
# Teatime Meadows
# Appie Foothills
# Banquet Rainforest
# Simmer Springs
# Dessert Mountain
# Do the Impossible
# The Mountain Top
== External links ==
* [https://www.trevorgomes.com/chicory Official website]
* [https://trevoralangomes.itch.io/chicory Sheet music]
* [https://www.iam8bit.com/collections/new/products/chicory-piano-collections-vinyl-soundtrack Vinyl soundtrack]
* [https://cohost.org/kuraine/post/354283-chicory-piano-collec Lena Raine's announcement post]
* [https://open.spotify.com/album/3l0s0E9klSktd8pe9D4pMp Spotify]
* [https://music.apple.com/us/album/chicory-piano-collections/1655143730 Apple Music]
[[Category:Soundtrack albums|Piano Collections]]
0775aa2e3ed67dc9af9073744ee816961a9ea0c3
Miso
0
40
189
90
2024-02-09T19:01:20Z
Chevreau
8
Added Dialogue
wikitext
text/x-wiki
{{Infobox character
|title=Miso
|image=Miso.png
|species=Owl
|location=Potluck
|pronouns=She/Her
}}
'''Miso''' is a character residing in [[Potluck]]. [[Pizza]] used to babysit her when Miso was younger.
== Dialogue ==
'''Pizza''': "Miso!! You've gotten so much taller!"
'''Miso''': "Pizza!! You're still very short."
'''Miso''': "I'm almost done school now."
:'''Pizza''': "That's so cool! I can't believe you grew up so fast!"
'''Miso''': "Well, I can't believe my old babysitter is the wielder!"
'''Miso''': "Well, I can't believe my old babysitter is so famous!" ''(postgame)''
:'''Pizza''': "Remember staying up late watching scary movies?"
'''Miso''': "Oh, yes. My parents would never show me them... But I loved scary movies so much."
::'''Pizza''': "Me too!" ''(option 1)''
:'''Miso''': "That's why you were, undoubtedly, the coolest babysitter"
::'''Pizza''': "I'm terrified of them!" ''(option 2)''
:'''Miso''': "You always did scream the loudest."
::'''Pizza''': "I wanted to impress you and be the cool babysitter."
:'''Miso''': "Well, the screaming didn't come off very cool. But you were, undoubtedly, the coolest babysitter"
'''Miso''': "I want to work in public service after I graduate. I think I'll move north, to Dinners. Maybe work at Province Hall, if I'm lucky."
:'''Pizza''': "Wow. So important. Good luck!"
:'''Pizza''': "Good luck." ''(if [[Pizza|depressed]])''
'''Miso''': Thanks."
[[Category:Characters]]
b2748c5aa0181447f46f44fcddad589def7b9e93
Template:Infobox Location
10
91
190
2024-02-09T20:36:57Z
Chevreau
8
Created page with "<infobox> <title source="title"> <default>{{PAGENAME}}</default> </title> <image source="image"/> <data source="music"> <label>Music</label> </data> <data source="palette"> <label>Palette</label> </data> <data source="gifts"> <label>Gifts</label> </data> <data source="lost kids"> <label>Lost Kids</label> </data> <data source="litter"> <label>Litter</label> </data> </infobox><noinclude> {{Documentation}} <!-- Add categories to the /doc subpage, in..."
wikitext
text/x-wiki
<infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="music">
<label>Music</label>
</data>
<data source="palette">
<label>Palette</label>
</data>
<data source="gifts">
<label>Gifts</label>
</data>
<data source="lost kids">
<label>Lost Kids</label>
</data>
<data source="litter">
<label>Litter</label>
</data>
</infobox><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
da105b0897cb85f1c90339a575beaaf43aa89f04
Template:Infobox Location/doc
10
92
191
2024-02-09T20:38:44Z
Chevreau
8
Created page with "Sample infobox: {{Infobox location |title=Luncheon |image=Pizza character.png |music=The Town of Luncheon |palette=#AF34B3 |gifts=6 |lostkids=7 |litter=23 }} <pre> {{Infobox location |title=Luncheon |image=Pizza character.png |music=The Town of Luncheon |palette=#AF34B3 |gifts=6 |lostkids=7 |litter=23 }} </pre>"
wikitext
text/x-wiki
Sample infobox:
{{Infobox location
|title=Luncheon
|image=Pizza character.png
|music=The Town of Luncheon
|palette=#AF34B3
|gifts=6
|lostkids=7
|litter=23
}}
<pre>
{{Infobox location
|title=Luncheon
|image=Pizza character.png
|music=The Town of Luncheon
|palette=#AF34B3
|gifts=6
|lostkids=7
|litter=23
}}
</pre>
a330c59e294a0bdcf7e8fdbf2d2d9cc379054bfe
192
191
2024-02-09T20:39:04Z
Chevreau
8
wikitext
text/x-wiki
Sample infobox:
{{Infobox Location
|title=Luncheon
|image=Pizza character.png
|music=The Town of Luncheon
|palette=#AF34B3
|gifts=6
|lostkids=7
|litter=23
}}
<pre>
{{Infobox Location
|title=Luncheon
|image=Pizza character.png
|music=The Town of Luncheon
|palette=#AF34B3
|gifts=6
|lostkids=7
|litter=23
}}
</pre>
f1f0424a558c5e4e0c4ca525b23f0e85e489a724
Template:Infobox Location
10
91
196
190
2024-02-09T20:49:09Z
Chevreau
8
wikitext
text/x-wiki
<infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="music">
<label>Music</label>
</data>
<data source="palette">
<label>Palette</label>
</data>
<data source="gifts">
<label>Gifts</label>
</data>
<data source="lostkids">
<label>Lost Kids</label>
</data>
<data source="litter">
<label>Litter</label>
</data>
</infobox><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
cb07a518c5c8a7ae5bbc883b5d1312a8af196724
File:Potluck.jpg
6
93
197
2024-02-09T20:50:41Z
Chevreau
8
wikitext
text/x-wiki
Potluck, in front of the transit bench.
92482189af9163ce49c0cea2123d93b14e94a2f1
Potluck
0
94
198
2024-02-09T20:58:01Z
Chevreau
8
Created page with "{{Infobox Location |title=Luncheon |image=Potluck.png |music=Potluck |palette=fc767d d7f494 ffdc80 ffffae |gifts=2 |lostkids=2 |litter=8 }} '''Potluck''' is a location in [[Picnic Province]]. == Features == * Art Academy * Holey Shop * Clothing Swap == NPCs =="
wikitext
text/x-wiki
{{Infobox Location
|title=Luncheon
|image=Potluck.png
|music=Potluck
|palette=fc767d
d7f494
ffdc80
ffffae
|gifts=2
|lostkids=2
|litter=8
}}
'''Potluck''' is a location in [[Picnic Province]].
== Features ==
* Art Academy
* Holey Shop
* Clothing Swap
== NPCs ==
1e0dd78388cb4a3821ce22b6d836ee2c3774069c
199
198
2024-02-09T20:58:39Z
Chevreau
8
wikitext
text/x-wiki
{{Infobox Location
|title=Potluck
|image=Potluck.jpg
|music=Potluck
|palette=fc767d
d7f494
ffdc80
ffffae
|gifts=2
|lostkids=2
|litter=8
}}
'''Potluck''' is a location in [[Picnic Province]].
== Features ==
* Art Academy
* Holey Shop
* Clothing Swap
== NPCs ==
7bc9d5a87df0e9055b104e4c717999160614936f
207
199
2024-02-09T22:53:18Z
Ngyikp
2
add [[Category:Locations]]
wikitext
text/x-wiki
{{Infobox Location
|title=Potluck
|image=Potluck.jpg
|music=Potluck
|palette=fc767d
d7f494
ffdc80
ffffae
|gifts=2
|lostkids=2
|litter=8
}}
'''Potluck''' is a location in [[Picnic Province]].
== Features ==
* Art Academy
* Holey Shop
* Clothing Swap
== NPCs ==
[[Category:Locations]]
9d162b2b94ab690bc33b3377cbe255da7fee3e12
Quests
0
43
200
195
2024-02-09T21:18:02Z
Cement
7
Inserted TWO quests. Now that's progress.
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats|Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
* [[Mail Delivery|Mail delivery]]
* [[Litter|Litter collecting]]
* [[Hummus|Hummus' garden]]
=== Chapter 5: ===
* [[Gelato|Gelato's photos]]
=== Chapter 6-9: ===
* [[Butterscotch's Investigation|Butterscotch's theft Investigation]]
=== Post-Game: ===
* [[Basil|Basil's plants]]
f062da55ccd94f6f4920bfe682c9bb2cf7fa7144
213
200
2024-02-09T23:46:31Z
Cement
7
Inserted one quest
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats|Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
* [[Mail Delivery|Mail delivery]]
* [[Litter|Litter collecting]]
* [[Hummus|Hummus' garden]]
=== Chapter 5: ===
* [[Gelato|Gelato's photos]]
=== Chapter 6-9: ===
* [[Butterscotch's Investigation|Butterscotch's theft Investigation]]
* [[Gravy & Biscuit|Gravy & Biscuit treasure hunting]]
=== Post-Game: ===
* [[Basil|Basil's plants]]
b8fd83c3a426f18d013619f22d1056f8f4431f3c
Miso
0
40
201
189
2024-02-09T21:33:14Z
Chevreau
8
wikitext
text/x-wiki
{{Infobox character
|title=Miso
|image=Miso.png
|species=Owl
|location=Potluck
|pronouns=She/Her
}}
'''Miso''' is a character residing in [[Potluck]]. [[Pizza]] used to babysit her when Miso was younger.
== Dialogue ==
'''Pizza''': "Miso!! You've gotten so much taller!"
'''Miso''': "Pizza!! You're still very short. I'm almost done school now."
'''Pizza''': "That's so cool! I can't believe you grew up so fast!"
'''Miso''': "Well, I can't believe my old babysitter is the wielder!"
'''Miso''': "Well, I can't believe my old babysitter is so famous!" ''(postgame)''
'''Pizza''': "Remember staying up late watching scary movies?"
'''Miso''': "Oh, yes. My parents would never show me them... But I loved scary movies so much."
:'''Pizza''': "Me too!" ''(option 1)''
:'''Miso''': "That's why you were, undoubtedly, the coolest babysitter"
:'''Pizza''': "I'm terrified of them!" ''(option 2)''
:'''Miso''': "You always did scream the loudest."
:'''Pizza''': "I wanted to impress you and be the cool babysitter."
:'''Miso''': "Well, the screaming didn't come off very cool. But you were, undoubtedly, the coolest babysitter"
'''Miso''': "I want to work in public service after I graduate. I think I'll move north, to Dinners. Maybe work at Province Hall, if I'm lucky."
'''Pizza''': "Wow. So important. Good luck!"
'''Pizza''': "Good luck." ''(if [[Pizza|depressed]])''
'''Miso''': "Thanks."
[[Category:Characters]]
10811a5b9273c88889bd6f375c8c32d5a5d9bfe9
File:Macaroon.png
6
95
202
2024-02-09T22:02:20Z
Chevreau
8
Macaroon
wikitext
text/x-wiki
== Summary ==
Macaroon
d74612d12c16f1ea230840e1c0240124d7994e0f
Macaroon
0
96
203
2024-02-09T22:07:36Z
Chevreau
8
Created page with "{{Infobox character |title=Maracroon |image=Maracroon.png |species=Squirrel |location=Luncheon |pronouns=He/Him }} '''Miso''' is a character residing in [[Potluck]]. [[Pizza]] used to babysit her when Miso was younger. == Interactions == Macaroon will ask Pizza to paint his house, after which he will give Pizza the [[Clothes|Brimcap]]. Macaroon may appear at the [[Potluck|Holey Shop]] or the [[Dinners|Slice Shop]]. == Dialogue == [[Category:Characters]]"
wikitext
text/x-wiki
{{Infobox character
|title=Maracroon
|image=Maracroon.png
|species=Squirrel
|location=Luncheon
|pronouns=He/Him
}}
'''Miso''' is a character residing in [[Potluck]]. [[Pizza]] used to babysit her when Miso was younger.
== Interactions ==
Macaroon will ask Pizza to paint his house, after which he will give Pizza the [[Clothes|Brimcap]].
Macaroon may appear at the [[Potluck|Holey Shop]] or the [[Dinners|Slice Shop]].
== Dialogue ==
[[Category:Characters]]
e28839fc59e774c802e0c8b3d9ed54da0fee47b4
204
203
2024-02-09T22:08:16Z
Chevreau
8
wikitext
text/x-wiki
{{Infobox character
|title=Maracroon
|image=Maracroon.png
|species=Squirrel
|location=Luncheon
|pronouns=He/Him
}}
'''Macaroon''' is a resident of [[Luncheon|Potluck]].
== Interactions ==
Macaroon will ask Pizza to paint his house, after which he will give Pizza the [[Clothes|Brimcap]].
Macaroon may appear at the [[Potluck|Holey Shop]] or the [[Dinners|Slice Shop]].
== Dialogue ==
[[Category:Characters]]
3397e8c8c8a7fd893a4645e255526cfb03ef705f
205
204
2024-02-09T22:08:33Z
Chevreau
8
wikitext
text/x-wiki
{{Infobox character
|title=Macaroon
|image=Macaroon.png
|species=Squirrel
|location=Luncheon
|pronouns=He/Him
}}
'''Macaroon''' is a resident of [[Luncheon|Potluck]].
== Interactions ==
Macaroon will ask Pizza to paint his house, after which he will give Pizza the [[Clothes|Brimcap]].
Macaroon may appear at the [[Potluck|Holey Shop]] or the [[Dinners|Slice Shop]].
== Dialogue ==
[[Category:Characters]]
61817eeddba7deecb45a0603b55a4a338145c6fb
User:Chevreau
2
97
206
2024-02-09T22:27:26Z
Chevreau
8
Created page with "https://media1.tenor.com/m/tKVBHkyVmHQAAAAd/thats-why-hes-the-goat-the-goat.gif"
wikitext
text/x-wiki
https://media1.tenor.com/m/tKVBHkyVmHQAAAAd/thats-why-hes-the-goat-the-goat.gif
408b84735070e7e6506aa5c0bb4c48f21307ab2e
Template:Colorbox
10
98
208
2024-02-09T23:15:17Z
Ngyikp
2
start template
wikitext
text/x-wiki
<div style="background: {{#if:{{{1|}}}|{{{1}}}}}};width: 30px;height: 30px;border: 1px solid #ccc;">{{{2}}}</div><noinclude>
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{Documentation}}</noinclude>
9ea6246de8239b8ec71f03463405fae1c73f7518
210
208
2024-02-09T23:17:12Z
Ngyikp
2
fix
wikitext
text/x-wiki
<div style="background-color: {{{1}}};width: 30px;height: 30px;border: 1px solid #ccc;"></div><noinclude>
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{Documentation}}</noinclude>
247f8a6a28f52ff06c1732a0da5ff107c658d20c
Template:Colorbox/doc
10
99
209
2024-02-09T23:16:41Z
Ngyikp
2
start doc
wikitext
text/x-wiki
Usage:
{{colorbox|#00f3dd}}
<pre>
{{colorbox|#00f3dd}}
</pre>
00d93bbb632615d651cd8c11a160e84d757f17df
Template:Palette list
10
100
211
2024-02-09T23:41:31Z
Ngyikp
2
start
wikitext
text/x-wiki
<ul>
{{#if:{{{1|}}}|{{Colorbox|{{{1}}}<!---->}}<!---->}}
{{#if:{{{2|}}}|{{Colorbox|{{{2}}}<!---->}}<!---->}}
{{#if:{{{3|}}}|{{Colorbox|{{{3}}}<!---->}}<!---->}}
{{#if:{{{4|}}}|{{Colorbox|{{{4}}}<!---->}}<!---->}}
</ul><noinclude>
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{Documentation}}</noinclude>
ce1cb690bd389dba33cf8eb519ec2571cedcf39b
228
211
2024-02-10T00:29:43Z
Ngyikp
2
add styling
wikitext
text/x-wiki
<templatestyles src="Palette list/style.css" />
<ul class="palettelist__root">
{{#if:{{{1|}}}|<li class="palettelist__item">{{Colorbox|{{{1}}}}} {{{1}}}</li>}}
{{#if:{{{2|}}}|<li class="palettelist__item">{{Colorbox|{{{2}}}}} {{{2}}}</li>}}
{{#if:{{{3|}}}|<li class="palettelist__item">{{Colorbox|{{{3}}}}} {{{3}}}</li>}}
{{#if:{{{4|}}}|<li class="palettelist__item">{{Colorbox|{{{4}}}}} {{{4}}}</li>}}
</ul><noinclude>
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{Documentation}}</noinclude>
2f866589e844faf583cd60625bb70e2a9a1f5cf7
Template:Palette list/doc
10
101
212
2024-02-09T23:43:11Z
Ngyikp
2
start doc
wikitext
text/x-wiki
Only a maximum of 4 colors/parameters are available.
Usage:
{{Palette list|#00f3dd|#d8ff55|#ffa694|#b69aff}}
<pre>
{{Palette list|#00f3dd|#d8ff55|#ffa694|#b69aff}}
</pre>
7901f0934787fc0b06b6423c8d64057f8df585b7
245
212
2024-02-10T00:31:50Z
Ngyikp
2
add [[Template:Uses TemplateStyles]]
wikitext
text/x-wiki
{{Uses TemplateStyles|Template:Palette list/style.css}}
Only a maximum of 4 colors/parameters are available.
Usage:
{{Palette list|#00f3dd|#d8ff55|#ffa694|#b69aff}}
<pre>
{{Palette list|#00f3dd|#d8ff55|#ffa694|#b69aff}}
</pre>
5a4570f6b2444a4b37b82ef534f6ae309cb2df73
File:Domigorgon Plus.woff2
6
102
214
2024-02-09T23:51:02Z
Ngyikp
2
Original font from https://www.dafont.com/domigorgon.font, Domigorgon Plus modified by Legendknight 3000
wikitext
text/x-wiki
== Summary ==
Original font from https://www.dafont.com/domigorgon.font, Domigorgon Plus modified by Legendknight 3000
46cd1560f83465740b499fcd03459a44aa3d47af
220
214
2024-02-09T23:58:47Z
Ngyikp
2
Protected "[[File:Domigorgon Plus.woff2]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Original font from https://www.dafont.com/domigorgon.font, Domigorgon Plus modified by Legendknight 3000
46cd1560f83465740b499fcd03459a44aa3d47af
File:Five Cents.woff2
6
103
215
2024-02-09T23:53:20Z
Ngyikp
2
https://www.dafont.com/five-cents.font
wikitext
text/x-wiki
== Summary ==
https://www.dafont.com/five-cents.font
04418260fc25d42d50ad9fc9dedd59946c664c35
221
215
2024-02-09T23:58:53Z
Ngyikp
2
Protected "[[File:Five Cents.woff2]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
https://www.dafont.com/five-cents.font
04418260fc25d42d50ad9fc9dedd59946c664c35
File:Lulus.woff2
6
104
216
2024-02-09T23:53:43Z
Ngyikp
2
https://www.dafont.com/lulusfont.font
wikitext
text/x-wiki
== Summary ==
https://www.dafont.com/lulusfont.font
813724c2481944dcc1f589087f4b736ce49e2057
222
216
2024-02-09T23:58:57Z
Ngyikp
2
Protected "[[File:Lulus.woff2]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
https://www.dafont.com/lulusfont.font
813724c2481944dcc1f589087f4b736ce49e2057
File:Metafors.woff2
6
105
217
2024-02-09T23:54:00Z
Ngyikp
2
https://www.dafont.com/metafors.font
wikitext
text/x-wiki
== Summary ==
https://www.dafont.com/metafors.font
3ca582248e5de8f7611a6ebe3f32ed5e0ac98b5e
223
217
2024-02-09T23:59:03Z
Ngyikp
2
Protected "[[File:Metafors.woff2]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
https://www.dafont.com/metafors.font
3ca582248e5de8f7611a6ebe3f32ed5e0ac98b5e
File:Shannnn.woff2
6
106
218
2024-02-09T23:54:15Z
Ngyikp
2
https://www.dafont.com/shannnn.font
wikitext
text/x-wiki
== Summary ==
https://www.dafont.com/shannnn.font
008fec789be15eb6ad65f3c3c25804405213b02d
224
218
2024-02-09T23:59:08Z
Ngyikp
2
Protected "[[File:Shannnn.woff2]]": High traffic page: Used in UI, don't allow random users to overwrite ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
https://www.dafont.com/shannnn.font
008fec789be15eb6ad65f3c3c25804405213b02d
MediaWiki:Common.css
8
4
219
5
2024-02-09T23:56:37Z
Ngyikp
2
add fonts
css
text/css
/* CSS placed here will be applied to all skins */
/* [[File:Domigorgon Plus.woff2]] */
@font-face {
font-family: 'Domigorgon';
src: url('https://static.miraheze.org/chicorywiki/c/c7/Domigorgon_Plus.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Five Cents.woff2]] */
@font-face {
font-family: 'Five Cents';
src: url('https://static.miraheze.org/chicorywiki/e/ea/Five_Cents.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Lulus.woff2]] */
@font-face {
font-family: 'Lulus';
src: url('https://static.miraheze.org/chicorywiki/1/1a/Lulus.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Metafors.woff2]] */
@font-face {
font-family: 'Metafors';
src: url('https://static.miraheze.org/chicorywiki/e/ed/Metafors.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Shannnn.woff2]] */
@font-face {
font-family: 'Shannnn';
src: url('https://static.miraheze.org/chicorywiki/d/d6/Shannnn.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
760b0ec711ee0079fc28b4e9d416df99717b0fb6
248
219
2024-02-10T00:38:43Z
Ngyikp
2
add ombox
css
text/css
/* CSS placed here will be applied to all skins */
/* [[File:Domigorgon Plus.woff2]] */
@font-face {
font-family: 'Domigorgon';
src: url('https://static.miraheze.org/chicorywiki/c/c7/Domigorgon_Plus.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Five Cents.woff2]] */
@font-face {
font-family: 'Five Cents';
src: url('https://static.miraheze.org/chicorywiki/e/ea/Five_Cents.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Lulus.woff2]] */
@font-face {
font-family: 'Lulus';
src: url('https://static.miraheze.org/chicorywiki/1/1a/Lulus.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Metafors.woff2]] */
@font-face {
font-family: 'Metafors';
src: url('https://static.miraheze.org/chicorywiki/e/ed/Metafors.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Shannnn.woff2]] */
@font-face {
font-family: 'Shannnn';
src: url('https://static.miraheze.org/chicorywiki/d/d6/Shannnn.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* From https://dev.miraheze.org/wiki/MediaWiki:Common.css */
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
2a6d48fe719516420a94b21bd5ed7e8bb1fd0ae9
250
248
2024-02-10T00:41:29Z
Ngyikp
2
add ombox (2)
css
text/css
/* CSS placed here will be applied to all skins */
/* [[File:Domigorgon Plus.woff2]] */
@font-face {
font-family: 'Domigorgon';
src: url('https://static.miraheze.org/chicorywiki/c/c7/Domigorgon_Plus.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Five Cents.woff2]] */
@font-face {
font-family: 'Five Cents';
src: url('https://static.miraheze.org/chicorywiki/e/ea/Five_Cents.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Lulus.woff2]] */
@font-face {
font-family: 'Lulus';
src: url('https://static.miraheze.org/chicorywiki/1/1a/Lulus.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Metafors.woff2]] */
@font-face {
font-family: 'Metafors';
src: url('https://static.miraheze.org/chicorywiki/e/ed/Metafors.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Shannnn.woff2]] */
@font-face {
font-family: 'Shannnn';
src: url('https://static.miraheze.org/chicorywiki/d/d6/Shannnn.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* From https://dev.miraheze.org/wiki/MediaWiki:Common.css */
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
45ed4530403cbca761e359846ad4c212f573ec6a
253
250
2024-02-10T00:47:22Z
Ngyikp
2
add ombox (3)
css
text/css
/* CSS placed here will be applied to all skins */
/* [[File:Domigorgon Plus.woff2]] */
@font-face {
font-family: 'Domigorgon';
src: url('https://static.miraheze.org/chicorywiki/c/c7/Domigorgon_Plus.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Five Cents.woff2]] */
@font-face {
font-family: 'Five Cents';
src: url('https://static.miraheze.org/chicorywiki/e/ea/Five_Cents.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Lulus.woff2]] */
@font-face {
font-family: 'Lulus';
src: url('https://static.miraheze.org/chicorywiki/1/1a/Lulus.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Metafors.woff2]] */
@font-face {
font-family: 'Metafors';
src: url('https://static.miraheze.org/chicorywiki/e/ed/Metafors.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* [[File:Shannnn.woff2]] */
@font-face {
font-family: 'Shannnn';
src: url('https://static.miraheze.org/chicorywiki/d/d6/Shannnn.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* From https://dev.miraheze.org/wiki/MediaWiki:Common.css */
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
/* @noflip */
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length */
}
td.mbox-image { /* The left image cell */
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0;
width: 1px;
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
a9ed2de98401fd673fd20381b89aa1bbac73c4e5
File:Turnip infobox image.png
6
107
225
2024-02-10T00:03:34Z
Cement
7
wikitext
text/x-wiki
This is turnip. The most useless, dumb stupid character in the whole universe.
f0bdde258e3a62c5f979c94ff225dd1147b60b11
MediaWiki:Vector.css
8
3
226
52
2024-02-10T00:10:34Z
Ngyikp
2
use Five Cents font for [[Pickle]]
css
text/css
/* All CSS here will be loaded for users of the Vector skin */
body {
background: #fff url('https://static.miraheze.org/chicorywiki/6/6c/Chicory_Wiki_page_background.jpg') no-repeat fixed 50% 50%;
background-size: cover;
--character-font: Domigorgon;
}
@media print {
body {
background: none;
}
}
.mw-logo-wordmark,
#pt-userpage-2 {
font-family: Domigorgon, sans-serif;
}
.portable-infobox .pi-title {
font-family: var(--character-font), Domigorgon, sans-serif;
}
.mw-body h1 {
font-family: var(--character-font), Domigorgon, 'Linux Libertine', 'Georgia', 'Times', serif;
}
body.rootpage-Pickle {
--character-font: 'Five Cents';
}
.skin-vector-legacy #mw-panel,
.skin-vector-legacy .mw-body,
.vector-feature-zebra-design-disabled .vector-header-container,
.vector-feature-zebra-design-disabled .mw-page-container,
.skin-vector-legacy #footer {
background-color: rgba(255, 255, 255, 0.97);
}
.skin-vector-legacy #footer {
display: flex;
flex-direction: column;
}
.skin-vector-legacy #footer-icons {
align-self: flex-end;
}
9774388c3894d330a9dd9f3c1f5cde71364f02cb
Template:Palette list/style.css
10
108
227
2024-02-10T00:28:25Z
Ngyikp
2
create style
sanitized-css
text/css
.palettelist__root {
list-style: none;
margin: 0;
padding: 0;
}
.palettelist__item {
display: flex;
gap: 8px;
align-items: center;
margin-bottom: 4px;
}
adf0911bf3e7038ad0f8c0d5eff5a5f042dd815b
Template:Uses TemplateStyles
10
109
230
229
2024-02-10T00:30:30Z
Ngyikp
2
1 revision imported from [[:dev:Template:Uses_TemplateStyles]]
wikitext
text/x-wiki
<includeonly>{{#invoke:Uses TemplateStyles|main}}</includeonly><noinclude>
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
7e26d8f257e302bd8a3dcbe53f52741ae0884f74
Template:Clear
10
110
232
231
2024-02-10T00:30:34Z
Ngyikp
2
1 revision imported from [[:dev:Template:Clear]]
wikitext
text/x-wiki
<div style="clear:{{{1|both}}};"></div><noinclude>
{{documentation}}
</noinclude>
38bab3e3d7fbd3d6800d46556e60bc6bac494d72
Module:Message box
828
111
234
233
2024-02-10T00:30:34Z
Ngyikp
2
1 revision imported from [[:dev:Module:Message_box]]
Scribunto
text/plain
-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local templatestyles = 'Module:Message box/styles.css'
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {user = 'tmbox', talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
local function templatestyles(frame, src)
return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} }
.. 'CONFIG_MODULE'
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
be00cd389f9f2afcd361e5d5e33622839555cbd9
Module:Message box/configuration
828
112
236
235
2024-02-10T00:30:35Z
Ngyikp
2
1 revision imported from [[:dev:Module:Message_box/configuration]]
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix'},
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}
c6bd9191861b23e474e12b19c694335c4bc3af5f
Module:No globals
828
113
238
237
2024-02-10T00:30:35Z
Ngyikp
2
1 revision imported from [[:dev:Module:No_globals]]
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:Yesno
828
114
240
239
2024-02-10T00:30:35Z
Ngyikp
2
1 revision imported from [[:dev:Module:Yesno]]
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Template:Uses TemplateStyles/doc
10
115
242
241
2024-02-10T00:30:36Z
Ngyikp
2
1 revision imported from [[:dev:Template:Uses_TemplateStyles/doc]]
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Categories go at the bottom of this page, and interwikis go on Wikidata. -->
This template is used to show that templates have been converted to use [[mw:Extension:TemplateStyles|TemplateStyles]]. It is placed at the top of the template's /doc page.
== Usage ==
; Basic : {{tlx|Uses TemplateStyles|''TemplateStyles page name''}}
; All parameters : {{tlx|Uses TemplateStyles|''TemplateStyles page 1''|''TemplateStyles page 2''|''TemplateStyles page 3''|...|category{{=}}''custom category''|nocat{{=}}''true''}}
The first TemplateStyles page name is required.
===TemplateStyles sandboxes===
Note that if a sandbox version of the TemplateStyle exists, it will also be linked. This is only for sandbox versions. The subpage name of the sandbox version should be the same, but as a subpage of the templates sandbox. For example, if the TemplateStyles page name is <code>Template:Foo/styles.css</code>, then the sandbox version should be <code>Template:Foo/sandbox/styles.css</code>
== Examples ==
===One style page===
{{tlx|Uses TemplateStyles|Template:Arrowlist/styles.css}}
{{Uses TemplateStyles|Template:Arrowlist/styles.css|nocat=true}}
{{clear}}
===Multiple style pages===
{{tlx|Uses TemplateStyles|Template:Arrowlist/styles.css|Template:Routemap/styles.css}}
{{Uses TemplateStyles|Template:Arrowlist/styles.css|Template:Routemap/styles.css|nocat=true}}
{{clear}}
===Sandbox version of style page exists===
{{tlx|Uses TemplateStyles|Template:Uses TemplateStyles/example.css}}
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}
{{clear}}
===No style pages specified===
{{tlx|Uses TemplateStyles}}
{{Uses TemplateStyles|nocat=true}}
{{clear}}
== TemplateData ==
<templatedata>
{
"description": "Used to show that templates have been converted to use TemplateStyles.",
"format": "inline",
"params": {
"1": {
"label": "Stylesheet 1",
"description": "Name of the main stylesheet used in the template or module. Use multiple parameters to specify multiple stylesheets.",
"required": true,
"type": "wiki-page-name"
},
"2": {
"label": "Stylesheet 2",
"description": "Name of the second stylesheet.",
"type": "wiki-page-name"
},
"3": {
"label": "Stylesheet 3",
"description": "Name of the third stylesheet.",
"type": "wiki-page-name"
},
"4": {
"label": "Stylesheet 4",
"description": "Name of the fourth stylesheet.",
"type": "wiki-page-name"
},
"5": {
"label": "Stylesheet 5",
"description": "Name of the fifth stylesheet.",
"type": "wiki-page-name"
},
"6": {
"label": "Stylesheet 6",
"description": "Name of the sixth stylesheet.",
"type": "wiki-page-name"
},
"7": {
"label": "Stylesheet 7",
"description": "Name of the seventh stylesheet.",
"type": "wiki-page-name"
},
"8": {
"label": "Stylesheet 8",
"description": "Name of the eighth stylesheet.",
"type": "wiki-page-name"
},
"9": {
"label": "Stylesheet 9",
"description": "Name of the ninth stylesheet.",
"type": "wiki-page-name"
},
"10": {
"label": "Stylesheet 10",
"description": "Name of the tenth stylesheet.",
"type": "wiki-page-name"
}
}
}
</templatedata>
<includeonly>
[[Category:Templates]]
</includeonly>
c86681b5a4f99bb6940c1ab54645e0f43131bb4e
Module:Uses TemplateStyles
828
116
244
243
2024-02-10T00:30:36Z
Ngyikp
2
1 revision imported from [[:dev:Module:Uses_TemplateStyles]]
Scribunto
text/plain
-- This module implements the {{Uses TemplateStyles}} template.
local mMessageBox = require('Module:Message box')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
return p.renderBox(args)
end
function p.renderBox(tStyles)
local boxArgs = {}
if #tStyles < 1 then
boxArgs.text = '<strong class="error">Error: no TemplateStyles specified</strong>'
else
local tStylesLinks = {}
for i, ts in ipairs(tStyles) do
local sandboxLink = nil
local tsTitle = mw.title.new(ts)
if tsTitle then
local tsSandboxTitle = mw.title.new(string.format('%s:%s/sandbox/%s', tsTitle.nsText, tsTitle.baseText, tsTitle.subpageText))
if tsSandboxTitle and tsSandboxTitle.exists then
sandboxLink = string.format(' ([[:%s|sandbox]])', tsSandboxTitle.prefixedText)
end
end
tStylesLinks[i] = string.format('[[:%s]]%s', ts, sandboxLink or '')
end
local tStylesList = mw.text.listToText(tStylesLinks)
boxArgs.text = 'This ' ..
(mw.title.getCurrentTitle():inNamespaces(828,829) and 'module' or 'template') ..
' uses [[mw:Extension:TemplateStyles|TemplateStyles]]:\n' .. tStylesList
end
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.image = '[[File:Farm-Fresh css add.svg|32px|alt=CSS]]'
return mMessageBox.main('mbox', boxArgs)
end
return p
3c7364ddaba9beb17a73b0f5256cd7fc3b3051f4
Turnip
0
117
246
2024-02-10T00:35:31Z
Cement
7
I described only the quest of rescuing Turnip.
wikitext
text/x-wiki
{{Infobox character
|image=Turnip infobox image.png
|species=Mouse
|location=Potluck
|pronouns=He/him
|occupation=Dumb mouse
|relationships=[[]] (Brother)
}}
Turnip is a minor character in Chicory: A Colorful tale. He exists, despite the wishes of part of the fandom.
=== Rescuing Turnip ===
In the beginning of Chapter 2, Turnip calls you to . He can be found in the dark, two screens to the left of [[Nibble Tunnel|Nibble Tunnel's]] exit to [[Potluck]]. To rescue him, you need to make a route until the exit of the cave with your paint while avoiding the bugs that eat paint. For your troubles of rescuing him, Turnip rewards you with the clothing item "Kerchief"
93da6f4de62deeec4adbc678f1e5606e39c65129
247
246
2024-02-10T00:36:38Z
Cement
7
wikitext
text/x-wiki
{{Infobox character
|image=Turnip infobox image.png
|species=Mouse
|location=Potluck
|pronouns=He/him
|occupation=Dumb mouse
|relationships=[[Grits]] (Brother)
}}
Turnip is a minor character in Chicory: A Colorful tale. He exists, despite the wishes of part of the fandom.
=== Rescuing Turnip ===
In the beginning of Chapter 2, Turnip calls you to . He can be found in the dark, two screens to the left of [[Nibble Tunnel|Nibble Tunnel's]] exit to [[Potluck]]. To rescue him, you need to make a route until the exit of the cave with your paint while avoiding the bugs that eat paint. For your troubles of rescuing him, Turnip rewards you with the clothing item "Kerchief"
0ffe36f4a550db2fdef06138495734ebd89fbcc4
Luncheon
0
36
249
85
2024-02-10T00:41:14Z
Cement
7
Moved one thing that was in the wrong place
wikitext
text/x-wiki
'''Luncheon''' is the first major location of the game and features the [[Wielder Tower]] and [[Pizza]]'s House. Other notable features in [[Luncheon]] include:
* [[Cafe]]
* [[Lost Kid Daycare]]
* [[Hat Maker]]/[[Garlic]]'s house
* Color Map
Besides that, Luncheon is directly connected with the locations of [[Gulp Swamp]], [[Nibble Tunnel]], [[Sips River]], [[Supper Woods]], [[Teatime Meadows]] and [[Yum Caves]].
[[File:Luncheon colours.png|alt=4 coloured circles are beside eachother. From left to right, the first one is a light-green, the second is salmon coloured, the third is blue, and the right-most colour is cyan. The colours are slightly brighter than the colours from before beating the game.|left|thumb|The 4 colours available in Luncheon after beating the game.]]
The colour Palette of [[Luncheon]] changes over the course of the game. Going from ''[placeholder]'' through the first 9 [[chapters]], to ''[placeholder]'' in the 10th chapter, during the [[corruption]], and finally to a brighter version of the original colours after beating the game.
=== Residents: ===
* [[Basil]]
* [[Beans]]
* [[Chicory (character)|Chicory]]
* [[Cola]]
* [[Ginger]]
* [[Lemon]]
* [[Macaroon]]
* [[Pea]]
* [[Pepper]] (former [[Dinners]] resident)
* [[Pickle]]
* [[Pumpernickel]]
[[Category:Locations]]
2bde7c7707131dac2779cc93cfab8377c06a2fd5
251
249
2024-02-10T00:41:33Z
Cement
7
Nevermind, it's just perpetually broken
wikitext
text/x-wiki
'''Luncheon''' is the first major location of the game and features the [[Wielder Tower]] and [[Pizza]]'s House. Other notable features in [[Luncheon]] include:
* [[Cafe]]
* [[Lost Kid Daycare]]
* [[Hat Maker]]/[[Garlic]]'s house
* Color Map
Besides that, Luncheon is directly connected with the locations of [[Gulp Swamp]], [[Nibble Tunnel]], [[Sips River]], [[Supper Woods]], [[Teatime Meadows]] and [[Yum Caves]].
[[File:Luncheon colours.png|alt=4 coloured circles are beside eachother. From left to right, the first one is a light-green, the second is salmon coloured, the third is blue, and the right-most colour is cyan. The colours are slightly brighter than the colours from before beating the game.|left|thumb|The 4 colours available in Luncheon after beating the game.]]
The colour Palette of [[Luncheon]] changes over the course of the game. Going from ''[placeholder]'' through the first 9 [[chapters]], to ''[placeholder]'' in the 10th chapter, during the [[corruption]], and finally to a brighter version of the original colours after beating the game.
=== Residents: ===
* [[Basil]]
* [[Beans]]
* [[Chicory (character)|Chicory]]
* [[Cola]]
* [[Ginger]]
* [[Lemon]]
* [[Macaroon]]
* [[Pea]]
* [[Pepper]] (former [[Dinners]] resident)
* [[Pickle]]
* [[Pumpernickel]]
[[Category:Locations]]
8c8bb87547f1729b4c34ecdbbbdbc2c9d13954ed
Template:Infobox Location/doc
10
92
252
192
2024-02-10T00:45:24Z
Ngyikp
2
update palette
wikitext
text/x-wiki
Sample infobox:
{{Infobox Location
|title=Luncheon
|image=Example.png
|music=The Town of Luncheon
|palette={{palette list|#00f3dd|#d8ff55|#ffa694|#b69aff}}
|gifts=6
|lostkids=7
|litter=23
}}
<pre>
{{Infobox Location
|title=Luncheon
|image=Example.png
|music=The Town of Luncheon
|palette={{palette list|#00f3dd|#d8ff55|#ffa694|#b69aff}}
|gifts=6
|lostkids=7
|litter=23
}}
</pre>
2e3d43b990e8b9843821435f69103c63392aaaeb
Luncheon
0
36
254
251
2024-02-10T00:49:18Z
Ngyikp
2
add {{{{Infobox Location}}
wikitext
text/x-wiki
{{Infobox Location
|title=Luncheon
|image=
|music=The Town of Luncheon
|palette={{palette list|#00f3dd|#d8ff55|#ffa694|#b69aff}}
|gifts=
|lostkids=
|litter=
}}
'''Luncheon''' is the first major location of the game and features the [[Wielder Tower]] and [[Pizza]]'s House. Other notable features in [[Luncheon]] include:
* [[Cafe]]
* [[Lost Kid Daycare]]
* [[Hat Maker]]/[[Garlic]]'s house
* Color Map
Besides that, Luncheon is directly connected with the locations of [[Gulp Swamp]], [[Nibble Tunnel]], [[Sips River]], [[Supper Woods]], [[Teatime Meadows]] and [[Yum Caves]].
[[File:Luncheon colours.png|alt=4 coloured circles are beside eachother. From left to right, the first one is a light-green, the second is salmon coloured, the third is blue, and the right-most colour is cyan. The colours are slightly brighter than the colours from before beating the game.|left|thumb|The 4 colours available in Luncheon after beating the game.]]
The colour Palette of [[Luncheon]] changes over the course of the game. Going from ''[placeholder]'' through the first 9 [[chapters]], to ''[placeholder]'' in the 10th chapter, during the [[corruption]], and finally to a brighter version of the original colours after beating the game.
=== Residents: ===
* [[Basil]]
* [[Beans]]
* [[Chicory (character)|Chicory]]
* [[Cola]]
* [[Ginger]]
* [[Lemon]]
* [[Macaroon]]
* [[Pea]]
* [[Pepper]] (former [[Dinners]] resident)
* [[Pickle]]
* [[Pumpernickel]]
[[Category:Locations]]
ebb65d9ac0b7beafed454a1c8159fc2e4c7b2a9d
Template:Palette list/style.css
10
108
255
227
2024-02-10T00:50:11Z
Ngyikp
2
override <infobox> style
sanitized-css
text/css
.palettelist__root {
list-style: none;
margin: 0;
padding: 0;
}
.palettelist__item.palettelist__item {
display: flex;
gap: 8px;
align-items: center;
margin-bottom: 4px;
}
29c9d86be445feba87053a1a8dceded29906f787
Potluck
0
94
256
207
2024-02-10T00:51:14Z
Ngyikp
2
update palette
wikitext
text/x-wiki
{{Infobox Location
|title=Potluck
|image=Potluck.jpg
|music=Potluck
|palette={{palette list|#fc767d|#d7f494|#ffdc80|#ffffae}}
|gifts=2
|lostkids=2
|litter=8
}}
'''Potluck''' is a location in [[Picnic Province]].
== Features ==
* [[Art Academy]]
* [[Holey Shop]]
* [[Clothing Swap]]
== NPCs ==
[[Category:Locations]]
7d8458f9053699da82f0bf621cb70b5de4ec2558
Quests
0
43
257
213
2024-02-10T00:52:51Z
Cement
7
Inserted one quest
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats|Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
* [[Mail Delivery|Mail delivery]]
* [[Litter|Litter collecting]]
* [[Hummus|Hummus' garden]]
=== Chapter 5: ===
* [[Gelato|Gelato's photos]]
* [[Garlic|Custom Hat designing]]
=== Chapter 6-9: ===
* [[Butterscotch's Investigation|Butterscotch's theft Investigation]]
* [[Gravy & Biscuit|Gravy & Biscuit treasure hunting]]
=== Post-Game: ===
* [[Basil|Basil's plants]]
09449c6a5e183625e60f92f3781c100be8a99d21
258
257
2024-02-10T01:01:07Z
Cement
7
Inserted one quest
wikitext
text/x-wiki
== List of quests available quests: ==
=== Chapter 1: ===
* [[Oats|Oats's requests]]
* [[Macaroon|Macaroon's request]]
* [[Beans's lost kittens]]
* [[Cafe|Cafe shirt drawing]]
=== Chapter 2: ===
* [[Art Academy|Art Academy's paintings]]
* [[Olive and Achiote|Olive & Achiote request]]
* [[Turnip|Rescue Turnip]]
* [[Potato|Potato custom brush]]
=== Chapter 3: ===
=== Chapter 4: ===
* [[Mail Delivery|Mail delivery]]
* [[Litter|Litter collecting]]
* [[Stevia|Graffiti Colouring]]
* [[Hummus|Hummus' garden]]
=== Chapter 5: ===
* [[Gelato|Gelato's photos]]
* [[Garlic|Custom Hat designing]]
=== Chapter 6-9: ===
* [[Butterscotch's Investigation|Butterscotch's theft Investigation]]
* [[Gravy & Biscuit|Gravy & Biscuit treasure hunting]]
=== Post-Game: ===
* [[Basil|Basil's plants]]
4ed29ca1804f592f1ae72b8453fcc58048272587
File:Turnip infobox image.png
6
107
259
225
2024-02-10T01:07:46Z
Ngyikp
2
remove opinion
wikitext
text/x-wiki
This is [[Turnip]].
b3bd2ea6c23f49a7ec861d1a225f86b0a5071af6
Turnip
0
117
260
247
2024-02-10T01:12:00Z
Ngyikp
2
remove opinion
wikitext
text/x-wiki
{{Infobox character
|image=Turnip infobox image.png
|species=Mouse
|location=Potluck
|pronouns=He/Him
|occupation=
|relationships=[[Grits]] (Brother)
}}
Turnip is a minor character.
== Quests ==
=== Rescuing Turnip ===
In the beginning of Chapter 2, Turnip calls you to . He can be found in the dark, two screens to the left of [[Nibble Tunnel|Nibble Tunnel's]] exit to [[Potluck]]. To rescue him, you need to make a route to the exit of the cave with your paint while avoiding the bugs that eat paint. For your troubles of rescuing him, Turnip rewards you with the clothing item "Kerchief".
d80723b56143e15df79bce0b6c90babffc27d218
261
260
2024-02-10T01:13:04Z
Ngyikp
2
add [[Category:Characters]]
wikitext
text/x-wiki
{{Infobox character
|image=Turnip infobox image.png
|species=Mouse
|location=Potluck
|pronouns=He/Him
|occupation=
|relationships=[[Grits]] (Brother)
}}
Turnip is a minor character.
== Quests ==
=== Rescuing Turnip ===
In the beginning of Chapter 2, Turnip calls you to . He can be found in the dark, two screens to the left of [[Nibble Tunnel|Nibble Tunnel's]] exit to [[Potluck]]. To rescue him, you need to make a route to the exit of the cave with your paint while avoiding the bugs that eat paint. For your troubles of rescuing him, Turnip rewards you with the clothing item "Kerchief".
[[Category:Characters]]
fc25455109c224efd862abbed240dabfd1fc15cc
Oats
0
86
262
193
2024-02-10T01:13:55Z
Ngyikp
2
add [[Category:Characters]]
wikitext
text/x-wiki
{{Infobox character
|image=Oats infobox image.png
|species=sheep
|location=Luncheon
|pronouns=He/him
|occupation: professional cool dude
}}
[[Oats]] is a minor character who resides in [[Luncheon]]. He can be found inside and outside the [[Cafe]]. When you talk to him, he gives you a [[Quests|quest]] to show him a [[clothing]] combination.
=== Oats's requests. ===
==== 1st: A Beanie and a Pocket Jacket ====
To complete this one, you need to talk to Oats while wearing a beanie and a pocket jacket. Both of them can be found in Chapter 1, and completing this request will earn you the item Shades.
==== 2nd: The sun over the flowers ====
To complete this request, you need to talk to Oats while wearing a Sunhat and a Flower Dress. The sunhat can be found in Chapter 1, while the Flower Dress can be found in Chapter 2, and completing this requests will earn you the item Tinted Glasses
[[Category:Characters]]
497c267589dd65d5b88407ebcc9e1cd63f0dbbe9
Chicory
0
49
263
140
2024-02-10T01:15:24Z
Ngyikp
2
/* Trivia */ cannot name yourself as Chicory
wikitext
text/x-wiki
{{Infobox character
|title=Chicory
|image=ChicoryIdle.png
|species=Hare
|location=Luncheon
|pronouns=She/Her
|occupation=Wielder (Formerly)
|relationships=[[Pizza]] (Friend)<br>[[Blackberry]] (Former mentor)
|style="Colorful"
}}
'''Chicory''' is a protagonist, and the namesake, of [[Chicory: A Colorful Tale]].
== Appearance ==
Within her self-portrait, Chicory is depicted as a brown hare with a pink nose. She adorns a purple cloak over a black shirt and teal pants. She wears gold/orange leggings<ref>[[:File:Chicory's leggings.jpg|Confirmation that Chicory is wearing leggings.]]</ref>, and a blue to gold band around the base of her ears.<br>In game, she appears pretty much the same, but is lacking color like everyone else. The player is free to color her as they wish.<br>When her cloak is removed, it is shown she wears suspenders.
== Trivia ==
* Chicory's identifying instrument is the clarinet.
* It is not possible to name the player Chicory through usual methods, as when attempting to do so, the game will ask for the player’s next favorite food instead. However, nothing special happens if one does manage to call themself Chicory.
== References ==
<references />
[[Category:Characters]]
53eab4e55447951c25281a23b3f903a1256c7162
Mail Delivery
0
118
264
2024-02-10T02:53:10Z
Cement
7
Described the first batch of letters. I think the general description still needs some work, but right now I'm focused on the letters themselves.
wikitext
text/x-wiki
In the middle of [[Dinners]], you can find the mail delivery building with [[Artichoke]] behind the counter. Upon talking to him he gives you a letter for you to deliver. When you deliver all the letters you've been given, talk to Artichoke again to receive your reward (normally more [[Mail Delivery|letters]]).
=== First letter: ===
The first letter is addressed to "two screens to the right of [[Dinners]] [[bus stop]]", which is one screen to the right of the mail building. There you will find [[Pepper]] worried about her child. Upon delivering the letter to her, she sees that her child was found and is on the [[Lost Kid Daycare]] and moves to [[Luncheon]] to help [[Beans]] with the [[Beans's lost kittens|lost kids]].
=== First batch of letters: ===
==== The middle of 3 square houses in a row: ====
The recipient is [[Granita]], in [[Potluck]]. The letter is a late birthday card sent by [[Turnip]].
==== 2 screens north of the Sips River bridge: ====
The recipient is [[Basil]], in [[Luncheon]]. The letter is from [[Gelato]] calling him over to his house in [[Brekkie]]. For delivering this letter, Basil gives you a flower named chicory.
==== To: [[Beans]] in [[Luncheon]], From: A Concerned Parent: ====
The recipient is [[Beans]], in [[Luncheon]]. The letter is from an unknown character. After delivering the letter, Beans proceeds to tell you how much of a help Pepper has been with the lost kids and thanks you for [[Mail Delivery|delivering]] the first letter.
==== The Highest house in Brekkie: ====
The recipient is [[Taiyaki]] in, you guessed it, [[Brekkie]]. He's in the top-left screen of Brekkie (same screen as [[Cantaloupe]]), in the leftmost house. The letter is a challenge for a duel in the video-game "Mega Mash Sisters". Aw reward for delivering this letter, Taiyaki give you the item Gaming TV.
=== Second batch of letters: ===
6fa9a6c0e17176c6c9d49ae71aada8f058ee7960
265
264
2024-02-10T04:30:13Z
Cement
7
Second batch of letters.
wikitext
text/x-wiki
In the middle of [[Dinners]], you can find the mail delivery building with [[Artichoke]] behind the counter. Upon talking to him he gives you a letter for you to deliver. When you deliver all the letters you've been given, talk to Artichoke again to receive your reward (normally more [[Mail Delivery|letters]]).
=== First letter: ===
The first letter is addressed to "two screens to the right of [[Dinners]] [[bus stop]]", which is one screen to the right of the mail building. There you will find [[Pepper]] worried about her child. Upon delivering the letter to her, she sees that her child was found and is on the [[Lost Kid Daycare]] and moves to [[Luncheon]] to help [[Beans]] with the [[Beans's lost kittens|lost kids]].
=== First batch of letters: ===
==== The middle of 3 square houses in a row: ====
The recipient is [[Granita]], in [[Potluck]]. The letter is a late birthday card sent by [[Turnip]].
==== 2 screens north of the Sips River bridge: ====
The recipient is [[Basil]], in [[Luncheon]]. The letter is from [[Gelato]] calling him over to his house in [[Brekkie]]. For delivering this letter, Basil gives you a flower named chicory.
==== To: [[Beans]] in [[Luncheon]], From: A Concerned Parent: ====
The recipient is [[Beans]], in [[Luncheon]]. The letter is from an unknown character. After delivering the letter, Beans proceeds to tell you how much of a help Pepper has been with the lost kids and thanks you for [[Mail Delivery|delivering]] the first letter.
==== The Highest house in Brekkie: ====
The recipient is [[Taiyaki]] in, you guessed it, [[Brekkie]]. He's in the top-left screen of Brekkie (same screen as [[Cantaloupe]]), in the leftmost house. The letter is a challenge for a duel in the video-game "Mega Mash Sisters". Aw reward for delivering this letter, Taiyaki give you the item Gaming TV.
For delivering the entire first patch, and talking to [[Artichoke]], you receive the clothing item Mailbag.
=== Second batch of letters: ===
==== The workshop on the river: ====
The recipient is [[Potato]], in the left margin of the south of [[Sips River]]. The letter you just delivered was a figure skating costume, as Potato has the dream of being a figure skater. For delivering this letter, Potato give you the clothing item sequins. He had ordered it, but it didn't fit him, fortunately it fits [[Pizza]] perfectly.
==== Exactly between the [[Luncheon]] bench and [[Blackberry]]'s house: ====
The recipient is [[Wisteria]], in [[Supper Woods]]. The letter is a triple-layer sweetbake that has aged in travel. For your noble efforts, Wisteria kindly rewards you with 3 [[Trash|pieces of trash]].
==== The lone cabin high on the Mountain - From [[Mochi]]: ====
The recipient is [[Momo]], in the rightmost screen of [[Dessert Mountain]]. The letter is [[Mochi]] asking Momo to go back to the Hair Salon in Dinners.
==== Exactly halfway between the Teatime bridge and top of City Hall: ====
The recipient is [[Onion]], in [[Dinners]]. The letter is from a mystery pen pal from [[Luncheon]] with a font eerily similar to [[Pickle|Pickle's]]. The letter is the pen pal talking about keeping watch for [[Chicory]] and noting how her janitor is clearly trying to form a friendship with her.
==== The most beautiful gal in Luncheon... no, all of Picnic!: ====
The recipient of this letter is [[Beans]] (she has been voted the most beautiful gal in picnic 8 years in a row). The letter is a dating proposal sent from Pepper to Beans, which is accepted.
For delivering every single letter and talking to Artichoke, you are handsomely rewarded with <s>a million dollars</s> the clothing item "delivery"
5521735033f0a49fc69d95399266e9e7cefab209
Template:Infobox Person
10
119
266
2024-02-10T04:38:37Z
Chevreau
8
Created page with "<infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image"/> <data source="pronouns"> <label>Pronouns</label> </data> <data source="role"> <label>Role</label> </data> <data source="origin"> <label>Originally from</label> </data> <data source="location"> <label>Location</label> </data> <data source="occupation"> <label>Occupation</label> </data> <data source="website"> <label>Website</label> </data> </infobo..."
wikitext
text/x-wiki
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="role">
<label>Role</label>
</data>
<data source="origin">
<label>Originally from</label>
</data>
<data source="location">
<label>Location</label>
</data>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="website">
<label>Website</label>
</data>
</infobox><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
2e90bd85575212a0d23fea740515cc2e127eae10
267
266
2024-02-10T04:41:22Z
Chevreau
8
wikitext
text/x-wiki
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image"/>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="location">
<label>Location</label>
</data>
<data source="origin">
<label>Originally from</label>
</data>
<data source="website">
<label>Website</label>
</data>
</infobox><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
6e132e3b3662d26e48f79baf1cb856ed6e88093c
Greg Lobanov
0
120
268
2024-02-10T05:08:05Z
Chevreau
8
Created page with "{{Infobox character |image=Curry.png |pronouns=He/Him |occupation=Game Developer |location=Vancouver, Canada |origin=Pennsylvania, USA |website=https://dumbandfat.com/ }}"
wikitext
text/x-wiki
{{Infobox character
|image=Curry.png
|pronouns=He/Him
|occupation=Game Developer
|location=Vancouver, Canada
|origin=Pennsylvania, USA
|website=https://dumbandfat.com/
}}
da2daf67759c3dc919a87cb961ef6c1bc66f271f
270
268
2024-02-10T08:26:34Z
Chevreau
8
wikitext
text/x-wiki
{{Infobox Person
|image=Curry_character.png
|pronouns=He/Him
|occupation=Game Developer
|location=Vancouver, Canada
|origin=Pennsylvania, USA
|website=https://dumbandfat.com/
}}
Greg Lobanov is the creator of Chicory: A Colorful Tale
7e9d361c0a2c5968deaa36dd9ecbd55cef2bfa01
Credits
0
121
269
2024-02-10T05:24:31Z
Ngyikp
2
add credits
wikitext
text/x-wiki
== A Game by ==
[[Greg Lobanov]]
== with Character Design & Animation by ==
[[Alexis Dean-Jones]]
== and Music by ==
[[Lena Raine]]
== Featuring Audio by A Shell in the Pit ==
<poem>
Em Halberstadt
Preston Wright
</poem>
== and Environment Art by ==
Madeline Berger
== with the help of our Lead Artist ==
You!
== with help from our friends at Finji ==
<poem>
Rebekah Saltsman
Adam Saltsman
Harris Foster
Felix Kramer
Emily Liles
</poem>
== QA ==
<poem>
Jonah Davidson
Taylor Normington
Gwen Sandel
Heather Winter
</poem>
== Porting by 22nd Century Toys ==
=== Technical Direction ===
Tony Bratton
=== Programming ===
<poem>
Jeremy Jorgensen
Joe Barton
</poem>
=== Production ===
<poem>
Matt Scates
Delaney Bannon
</poem>
=== Additional Support ===
<poem>
Sean Barton
Andy Arizpe
Cory Jackson
Cullen Sturdivant
Tim Godwin
Edwin Silerio
Keola Silva
</poem>
== Localization ==
=== Spanish ===
Álex Hernández-Puertas
=== French ===
Maxime Lebled
=== Portuguese ===
Rebeca "Muffin" David
=== Italian ===
Matteo Pozzi (We Are Muesli)
=== German ===
ACE Agency
=== Russian ===
ACE Agency
=== Chinese & Korean ===
ACE Agency
=== Japanese Localization by 8-4, Ltd. ===
==== Translator ====
Keiko Fukuichi
==== Producers ====
<poem>
Tina Carter
John Ricciardi
</poem>
==== Additional Support ====
<poem>
Alissa Staples
Sami Ragone
Hiroko Minamoto
</poem>
=== Localization Editors ===
<poem>
Juanma Pérez
Amandine Coget
Julia Quandt
Fabio Bortolotti
C.A. Sinclair
Alexander Preymak
Hua Wei Wang
Fable Bae
</poem>
== Camera Shaders ==
Jord Farrell
== Font Help ==
Allison James
== Featured Illustrators ==
=== Chicory's Studio ===
Alexandra Kern
=== Radish's Art ===
Quinne Larsen
=== "Here in the Garden" ===
Amora Bettany
=== "Hidden Kitten" ===
Trudi Castle
=== "Restraint" ===
Paige Bowman
=== "Cooking Cozy" ===
Francesca Buchko
=== "Fluffy Fluffy Sheep Sheep" ===
Nanae Kawahara
=== "The Wizard" ===
Atlas Thorn
=== "Letting Go" ===
Chris Bourassa
=== "A Breezy Field" ===
aurahack
=== "The Bachelor Party" ===
Louis Wain
=== "Portrait of bay horse looking back" ===
Rita Kochmarjova
== "Frog Detective" character originally created by ==
Grace Bruxner
== Musical Performances ==
=== Woodwinds ===
Kristin Naigus
=== Violin, Viola ===
Michaela Nachtigall
=== Cello ===
SungHa Hong
=== Saxophone ===
Carlos Eiene
=== Guitar ===
Stemage
=== Drums ===
Kevin Ragone
=== "The Mountain Top" vocals by ===
Emi Evans
== ICO Partners ==
<poem>
James Bartholomeou
Aaron Hinchion
Fanny Moreaux
Laura Fournier
Lisa Kneidl
Enrique García
Thomas Bidaux
David Ortiz
</poem>
== Sony Interactive Entertainment ==
<poem>
Greg Rice
Matt Kessler
Tom Gough
Christian Svensson
Shawne Benson
Myles Donald
Matt Milberger
Chris Brown
Peter Brown
Mike Hoffman
Andrew Wong
Mischa Stephens
Benjamin Miller
Kimberly Flaig
Isu Amador
Rudy Urroz
</poem>
== Testing and Feedback ==
<poem>
Noel Berry
Maddy Thorson
Shane & Cassandra Neville
Nels Anderson
Sarah Northway
Sara Deter
Krista Parham & Kira Aguera
Amora Bettany
Adam Saltsman
Sasha Heasley
Chevy Ray Johnston
Tom Francis
Yvonne Hanson
Trudi Castle
Cole Pauls & Kirsten Hatfield
Jon Remedios
Michael Quell
</poem>
== Character Voices ==
<poem>
Em Halberstadt
Greg Lobanov
Alexis Dean-Jones
Lena Raine
Gordon McGladdery
Joey Van Alten
Preston Wright
Millie Wissar
Rachel Sim
Nicholas Zhang
Maria Cecilia Saba
Mauricio Ruiz
Murray Cameron Smith
Kat Forget
Skye Ruttle
</poem>
== Thank you to all our Kickstarter backers!!! ==
<poem>
-Nadrel-
<nowiki>:-)</nowiki>
[GMU]Jimbo
@bleebakesandthings
<nowiki>***Mama, Papa and Baby Bean Kardian ***</nowiki>
🧀☺xX_Mac&Cheese_Xx ☺🧀
0TastyPie0
2amsoda
7suna
A Fraught Faun
A Work In Progress (Sonder)
Aaalia
Aaron "Mad Dogg" Senser
Aaron Jacobs
Aaron Langille
Aaron Maxwell
Aaron Philip Martin Nicholas Taylor
Aaron Polans
Aaron Rubedo
Aaron Z. Best
AbsentAmpersand
AbsotivelyPawsilutely
Ace Simonelli
Adam "Geks" Taber
Adam Blenner
Adam Cooper
Adam Curry
Adam Fahy
Adam H
Adam Hill
Adam Nash
Adam Vazquez
Addy
Adina Shanholtz
AdjectiveFood
Adrian Sandoval
Adrienne G. P.
Aeos
Aevan Armus
Aewan
Affinity Archives
Afterglow
Ahmed Zainal
Aidan Cuffe
Aiden "Wubsparce" Pike
Ajda Afrodit Adams
AJT
AKAJaybay
Aketoki
Akfamilyhome
Al Romaithi
Al W.
Alan Leal
Alan Maître
alana
AlaskanBeard
Albertine Watson
Alden Truby
Alejandro de Cea
Alex "Doobert" Strunk
Alex & Wing
Alex Carlson
Alex Cole
Alex Dach
Alex Diener
Alex Durrant
Alex Green
Alex Harby
Alex Kain
Alex Muench
Alex Pestana
Alex Rainone
Alex Texter
Alex Toor
Alex Whitfield
Alex Wolff
Alex Wood
Alex2life
Alexa Stroth
Alexander Da Silva
Alexander Roederer
Alexia Mohabir
Alexis "pimpsc00by" Augustin
Alexis Cruz
Alexis Martin
Alfie Kentesber
Ali Melody McGowan
Alic Szecsei
Alice Beaulieu
AlienWithABox
Alina Christenbury
Alisadblaze
Alisson Alberti Tres
Allison Müller
Almond
Alysha Atkinson
Alyssa Bee
Amanda Elliott
Amanda Fuentes
Amanda Harris
Amanda Kadatz
Amanda Lange
Amanda Lockie
Ambunny
Amelia Bedelia
Amelia Wallace
Amelia Whitlow
Amora B.
Ampyluxe
Amrynth
Amy Zhou
an aberrant marshtomp
Ana Emily Jenkins
Analiese Swerdlin
Anari
AndDrewAThing
Anderson Pich
André Twupack
Andrea (SmallSmartkitty)
Andreas
Andres Guerrero
Andrew 'delphionic' Forde
Andrew Barnick
Andrew Coulombe
Andrew Dunn
Andrew Esch
Andrew Ferguson
Andrew Gwinner
Andrew Heran
Andrew J. Petracca
Andrew O'Hanlon
Andrew Passafiume
Andrew Reiff
Andrew Trautmann
Andrew Trevillian
Andrew Wooldridge
Andy Kurnia
Angela Moseley
Angelique Krencius
AngryNerdBird
Animal-C4
Anindor
Anjou Stiles
Anna D.
Anna Lapinsh
Anna Prein
Anna S. Rodewald
Anne-Sophie Sicotte
AnneSibyl
anniexan
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
AnonymousTurtle
Anthony Folino
Anthony Haevermaet
Anthony Molé
Antoine Degenne
antomie
Antoni Ferragut
Anya Combs
AP
Apolline Perros
April Walsh
AquaAce
Araraura
Arcana Maze
Arch Magni Andrealphus
Ari Rahim
Ariane A.
Aric Smith
Ariëlla F. Reinders
Aritsune
Arjan van der Meer
Art Dog
Artemis Butler
Artemis Rathmore
Artie Song
ARTSYFARTSY
Arturo Venegas Jr.
Aru_cade
ash ashinand
Ash Dunn
Ash Vogl
Asherah Connor
Ashiko
Ashley
Ashley Abbott
Ashley Greene
Ashley Kim
Ashley Vincent
Ashley Young
asundayraine
Athenrein
ATK-zero
Atma Phoenix
Aubrey Smith
Aude-javel
Audrey
Audrey Abell
Audrey Lau
Audrey Rondello
Audrey Waner
AuraPaladin
Austin [ValantWynn]
Austin D. Carlson
Autumn
Autumn Beauchesne
Autumnsocks
Avaeti
Axus
Aya Freundt
Az and PJ Martin
Aziz Hasan
bajr
BakedMPotato
baldur orri
BambooTank
Barbiche
Barret Vasilchik
Barry Kramer
Bartimaeus
Baza39
bea mcjanda
Bealuc
Bear Cloud Games
Becky Bailey
Ben Austin
Ben Charas
Ben Griffin
Ben Kerslake
Ben Lin
ben monster
Ben Nichols
Ben Nissan
Ben Shore
Ben Sironko
Benjamin Gemmel
Benjamin Morgan
Benjamin Ross
Benjamin Worlton
Benly
Benoist MARTINS
Benoit "ExServ" Reinier
Benoit Duroi
Beth Cameron
Beth Gripton
Bethan J
Bill Caswell
Bill Imperiale
Bill T Cat
Bim
Birchmere Marcelino
Birdish
Blake Guthrie
Blake Imsland
Blondie
Blossom Kremer
Bo Dodge
Bob Prescott
Bob Webb
Bob Z
Bohdan Hrynevych
Bongo
Boyks
Bradley Vogt
Brady Wiegman
Brando
Brandon + Kaelyn
Brandon Boyer
Brandon Cruzen
Brandon Orden
Brandon Skari
Brandy Rivera
Brandy Smart
Brant Gehrke
Braxton Burks
Braxton Harris
Brendan Lazio
Brenden Strick
Breno "Nyksund" Pires
Brett Morien
Brian Berk
Brian Chesnut
Brian Conant
Brian Deisher
Brian Emling
Brian Foster
Brian Jones
Brian Mulligan
Brian Szychowski
Briar Sovereign
Brit W.
brocolie
Brook Miles
Brooke Vlahos
Brookes Eggleston
BruinTea and Pinewn
Bryan Hayes
Bryan Ludvigsen
Bryan N.
Bryant Cannon
Bryce
Bubbafare
Budi Sugianto
Bugjamboree
Bush!
Buttonyounta
Cactus and Hedgehog
cadaeic
Cadence (Ciirulean)
Caedachi
Cael
Caesol
Cait Charniga
Caitlin Barta
Caitlin Sales
Caitlin Warner
Caitlyn Berry
Caius Worthen
CakeGameLady - Heather Smith
Caleb Bott
caley charchuk
Callahan Fernandes
Callie G.
Callum Rakestraw
Calmirion
Calvin C.
Calvin Hodges
Calvin Nguyen
Cam Dow
Camden Laforest
Camden Segal
Cameron “N64Fan” Holt
Cameron Cucksey
Cameron Heide
Cami!
Camila Rigollet
Camille N
Candace Hudert
Candi & Chris Norwood
Cannipracus
Captain Burbank Eastloft
Captain_Trina
Caramain
Cari "MiX" Garafalo
Cariad Keigher (KateLibC)
Carl Kloster
Carla McCarron (ClickMyth)
Carlinos =)
Carly K
Carmen Lopez
Caroline C
Carrie Witt
Casey
Casey A. Childers
Casey Hallahan
Casey Remy
Casie R.
Cassie
Catherine
Catherine Litvaitis
Catherine Styles
Cats777 of Aersia
catterfly
Cecily Lopez
Ceidz
Celina and Niki
Celly Gullo
celsius narhwal
Cezareo
Chance Lytle
Chanisha
Charles R. Messenger
Charles Ritz
Charles Voita
Charlie Cawood
Charlie Neudorf
Charlie Schatmeyer
Charlie Tangora
Charlotte Claridge
Charlotte Landale
Chase Tramel
Chasquared
Chaz Boston Baden
Chel Wong
Chelsea Theriault + Trevor Young
Chimmite
Chiri Vulpes
Chloe Johnson
Chloe Moon
chooseareality
Chris Blanchard
Chris Blondin
Chris Bourassa
Chris Davis (@Tempo_Name)
Chris Emory
Chris Grubbs
Chris Hoopes
Chris LoPresti
Chris Marzolf
Chris McCole
Chris McCoubrey
Chris Portal
Chris Quay
Chris Usher
Chris Vestman
Chris Wade | Luckshot Games
Christen "Lilo" Hillard
Christen Higgins
Christian Ching
Christian Davis
Christian Dobbins
Christian Horazeck
Christian Shelton
Christian Ström
Christie
Christie Bennett
Christina Godek
Christine Hachmann
Christopher "Pianfensi"
Christopher Barnes
Christopher Gallo
Christopher Holden
Christopher James Palafox
Christopher Schiefer
Christopher Wilkinson
Christopher Wilson
Chuck Gala
Cieluim
Claire Eckelman
Claire Rochelmeyer
Claire Webster
Clara Sia (SeriouslyClara)
Clarissa G
Clay
Clayton LeVerrier
Clemens Scott - Broken Rules
cloverfirefly
Clueless Danny
CobGoblin
Cody Delorme
Cody Frazer
Cody Woodson
Colby Ludwig
Cole Marlar
Colin Edwards
Colin Fredericks
Colin Gormley
Collin "airhoppz" Smith
Collin Harris
ColorlessTiger
Confetti
Connery Cateni (ccateni)
Connie
Conor McClymont
Constance Da Cunha
Constantinos Tsikinis
constantlyk
Cookie Cat
Copycat Zero
Coraline & Linnea W.F.
Corazon Cruz
Corey Ansley
CORRDZ
CottonBun
Courtney Gamache-Owen
Craig
Craig Ferguson
Crashdoom
CrookiNari
Crystal Lanzana
cstone
Cy Wilmott
Cy Wise
CyanSorcery
cyberspacecat
CyborgGrandpa
Cyclopsboi
D3spairity
Dad
Daddldiddl
Daisy
Daisy Stonetalus
Dak Lawler
Dakota Hernandez
Dakota Jones
Dakota Trammell
Damien Erambert
Damon Bass
dan becker
Dan Sanderson
Dan Supple
Dan Thompson
Dan Turetsky
Dan Winograd-Cort
Dana Herbeck
Dana Kurzner
Dana Plasterer
danberado
Dani Goodman
Dani Jukes
Dani Rivera
DaniAdventures
Daniel
Daniel "Toolbox" Leiva
Daniel B
Daniel Badrock
Daniel Bernard
Daniel Chace
Daniel Chin
Daniel Cleaton
Daniel Eriksson
Daniel Gallego
Daniel Huras
Daniel Martin
Daniel Miller
Daniel Ramos
Daniel Snd
Daniel Tse (the koala)
Danley Hsu
Dannnnnnmn
Danny "Shadow64" Mastrangelo
Danny Martin
Danny Morris
Dapon
Darian
Darien Brice Dickinson
Darksunrise
Dave and Livvy
Dave Pickett
Dave Tamayo
Davey Wreden
David "Damar" Martinez
David Bailey
David C. Fraga
David Flamm
David Gates
David Hammond
David Herrera
David J Prokopetz
David Palardy
David Plater
David R Lafollette
David Ryskalczyk
David Solair
David Su
David Wolfpaw
Davis Vu
Dawn Nyan
Dayeanne Hutton
Dayrl Biggins
Deak Niro
Dean "Noaksey" Noakes
death2cupbots
Dee
Delilah Nevill
Delora Smith
Deneb Mastorya
Denis Lefort
Denise G.
Denise Konop
Derek Huffman
Derrick Galvan
Desmond C. Simmons
DetectiveMecha
DeVante "ThatToonyGuy" Hall
Dewi31
Dexter M !
Diana Mallery
Diane
Diego De la Rocha
Dingo!
Dio Brando
DirtBoar
DJ
DKWings
dmynerd78
Doc “Salt” OMalley
DocMatoi
Dominik Szymanski
Dominique Julie de Gracia
Dominique Müller
Donovan Bender
doodlerTM
Dora Breckinridge
Dorian Alexander Patterson
Doug "Dugalls" Grosser
Doug McQuiggan
Douglas Cartee
Douglas L. Miller
DPS2004
Dragnix
Dragomir "Primpy" Alexandru
Dragronkhan22
Dragynwulf
Draiic
Draw A Dog Tuesday
Dreamer
DREAMFALL ONE (S.W.)
Drew Breckner
Drew Messinger-Michaels
DSKaitlyn
DubstepDentist
Duncan Boehle
Duncan Garrett
Dustin McKenzie
Dustin T
dvdfu
Dylan Biddle
Dylan G.M. Schouten-Adavi
Dylan J. Hamilton
Dylan Mirales
Dylan Nugent
Dylan Xavier Lee
E Fraire
E. Phillips
eamon copher
EcoSage
Ed Lago
Edd’s Nightmare
Eddie Yu
Eddy Dauber
Eden bakua
edensoul
Edi Seidler
Eduard Gamiao
Eduardo Diaz
EEK OCK ING ONG
Egill Eineborg
Egotistical Raven
Eike Dunn
Ekrips
Elaine Gómez - @chulatastic
Elaine Hu
Eli B
Eli Conley
Eli Gavett
Eli Hoyt
Eli Lang
Eli Meir
Elias
Elijah Anders Marrone
Elizabeth 'Byrd' Powell
Elizabeth Villarreal
Ella H
Elliott Gibb
Elliott Valentine
Ellysia Bowen
Elmoeprad
ElolaWhen
ElsaStegosaurus
Elvie Mae Parian
Elyse Explosion
Em Harriett
Em Rose
Ema
EmbEro
Emblem
Emery Curran
Emi Wang
Emil Bohac
Emilia de Bonilla
Emily
Emily "enistoja"
Emily Aster
Emily Hancock
Emily McDowell
Emily Rizzo
Emily Rose
Emma LeRae Matthew
Emma Mullen
Emma Tumlin
Emma Varjo
emmavoid
Emmy Age
Endell
Erakir Pompop
Eric "14bit" Crawford
Eric Chant
Eric Heine
Eric Moen
Eric Nikolaisen
Eric Taylor
Erica Olliges
Erica, Alex and Erin Jungparker
Erin Gordon
Erin Harker
erisethSP!
Esoteric Myobi
Ethan Alias
Ethan Davis
Ethan Hall
Eva S.
Evan Ciolek
Evan Cykana
Evan Gale
Evan Gibbs
Evan Lewis
Evan Waters
Evan Zoran
evelynn w
Everdraed
Eversong
Evie Goebel
Evie Yundt
Excell Galatine
Fabien Collard
Fabrice DANIEL
Fahd
Faith W.
FallenRedNinja
Fanny
Farah Ismail
FCRacer
FeastontheFalln
Feefers
Feldenthorne
Felicity Wark
Felix Feu
Felix Kramer
Fellow Traveller
Fenic Fawkes
Fenixero
Ferdinand Uy
Fermin Serena Hortas
Fester L.D. MacKrell
Finley Martin
Fiona H
Firenz
Fisher Knight
Flibo
Florian
Flyingcodfish
FobiDragon
Frances Acosta
Frances McGregor
Frances Michelle Cannon
Francesco Dal Maso
Francis Tessendorf
François-Xavier Véronneau
Fred Baker
Freddie Lee
Fredrik Meling
Free Lives Games
Fridge
frio
Fro-Zach
FuZZyDoo
Fuzzypaws!
Fyren the Cat
Gabby DaRienzo and Andrew Carvalho
Gabe "High Energy" Scholz
Gabriel Maahs
Gabriel Newman
Gabriel Toublanc
Gaelen McFadden
Gail P Sherman
Galen Ryder
Gamerowen
Garavic
Gard Gåsodden
Garret Firl
Gary Malone
Gaspard Larivière
Gavin Barbeau
Gecko
Geedawg
Geeky Quilter
geemuboi
Geneva Heyward
Geoffrey D Suthers
Gerry McGrory
Gideon Canales
Gillian Feldman
Gillian Hitchen
GingerOwlGirl
giosann
Gladly but not necessarily
Glenn
glip
Glowstick
Goatframe
Goblin Junk Bot
Gottfredam
Grace Gorski
Grace Kraft
Grace Williams
Gracie Eastridge
Graham C-M
Graham Hamilton
Grant "Hot Dog" Howitt
Grant Allen
Grash Uriza
Grayson Evans
Greg Filpus
Greg Rice
Gregory "Cricket" Gonzalez
Gregory Erath
Gregory Loden
grey
Grey Schwartz
Greyson Ditzler
Gri
Griffin H.H.
Griffin Tench
Griffin White
Grue Robinson
GrugsPro
gtc?
Guia Longasa
Guillaume Agnes
Guille Blisnak
Guillian "Venarion" Vansteene
Gun Bong
Güs Siska
Gwen Wheeler (Phantom)
Gwennaël Hertling
Gwenvred LATIMIER
H Charney
Haley Howard
HaloMixter
Haneway
Hannah Boyd
Hannah Howden
Hannah Kowalski
Hannah Mickey
Hannah Warner
Hannes Winkler
Hans-Peter H.
Hapuku
Harison & Mathew Wiesman
Harlan Howe
Harriet Rocker
Harry DiBenedetto
haseaufextasy
Hastur
HatBun
hayley
Hazuka
He-Zin Kwon
Heather V.
Heidi Moone
Helen Roberts
HelloMissPotter
Henri Potvin
Henrique "TheChaltz" Chaltein
Henry Ewins
Hidehiko Ogata
Hiken&Blake
Hiyatei
Ho Sheng Rou
HoldenPNW
Holly Rose
honeyoshi
Hoolemage
Hope Erin
Hotcakes Deluxe
Howl 'Boo' Rider
HpBoost
HraezlyrDragon
Hugo "Frigow" Peyre
Hugo Westgren
Hummus Bagel
Hunter "SquidPunk"
Hunter Nielsen
Hydropales
Hyon Na
hypernico_
iam8bit
IaMe
Ian "az019er" Effendi
Ian "WolfMeryX" Mery
Ian Baker
Ian Barczewski
Ian O'Dea
Ica Tongco
IGU
Ike_Blue
ikookniet
ILC
iliana
Imogen Mangle
Important Little Games
Inconnu au Bataillon
Indie Alpaca
indie(Function);
InlandOsprey
Inna Lobanova-Heasley
Inumaru12
InvaderAlexTHM
Ioan-Alexandru Achim
iolo
iplaymysnes
Iris Monsivais
Isa Reyes
Isaac Embree
Isaac Schankler
Isaac Williams
Isabel Echevarria Casillas
Isaiah Emmanuel
Isaiah Swenson
Ish Kabibble
Israel Murrell
Issac Alzaga
itare & Co’s
Iván Freire
Ivie Ervin
Ivy C
J Pharo
Jack Lair
Jack Svonovec
Jack Vine
Jacki Wang
Jackie Kreitzberg
Jackie Markiewicz
Jacob Bauch
Jacob Bristow
Jacob Gonsoski
Jacob Hobbie
Jacob Manzano
Jacob McCarty
Jacob St. John
Jadecore
Jakeb Steadman
Jameelah Shahin
James "Lekon" Barry
James "MysticFox" Cole
James Bannerman
James Buchanan
James Cunningham
James Dalzell Hodge
James Ferguson
James Heathfield
James Penhallurick
James Reiati
Jameson Knights
Jamie Gallagher
Jamie Murphy
Jaminx
Jammy
Jana Bergevin
January Urso
Jared Durako
Jarryd Huntley
Jasmine Mijares (oweeo)
Jasmine Wills
Jason
Jason "Lakupo" Corbett
Jason Coates
Jason Crase
Jason Frank
Jason Kaplan
Jason Kelley
Jason Legend Plankenhorn
Jason Marziani
Jason Miller
Jason Sandh
Jason Withrow
Jay Tholen
Jay V Schindler
Jayajamin
Jaye Bull
Jayla N.
jayxle
JB_Lelouch
Jeanette Helen MacQueen Moe
Jeff K.
Jeff L'Heureux
Jeff Quattrociocchi
Jeff Thomas
Jefferson Ng
Jeffrey (@comet_melting) Chiao
Jenn
Jenna Cucore
Jennie S
Jennifer Layer
Jennifer Maddux
Jeremiah Senkpiel
Jeremy Banks
Jeremy Gable
Jeremy Pick
Jeremy Wolfe
Jeremy Yanofsky
Jerome "Jepp" Phelps
Jes & Dyl
Jess Gossen
Jess Timmons
Jesse Clark
Jesse Jones
Jesse Murphy
Jesse Parra
Jessica Gaytan
Jessica Källberg
Jessica Levy
Jessica Mahon
Jessica Schulze
Jessie Myers
Jessie Yang
Jezbel
Jika Knight
Jill Grodt
Jim Anderson
Jim Otermat
Jin An Jr
JinieLantern
Jinx
Jirard Khalil The Completionist
jjychara
JMerilaita
Jo
Jo Lane
jo.moe
Joan Nobile
Joanie "BubblyOasis" Rich
João Carlos Bastos
Joaquin Enrique M. Quijano
Joe Collins
Joe Muoio
Joe Spataro
Joel "Jamage" MacFadyen
Joel Bartley
Joel Boutiere
Joel Eblin
Joey Godard
Joey Van Alten
Johanna Pelton
Johelian
John "GamerMind" Löfvenius
John A. Blue
John Gavin Polson
John Laschober
John Loner
John Lopez
John Niedfeldt
John Paul Kilcrease
john phillips
John R Fox
John T Morton
john tv
John Wriston
Johnjacob Miles
Johnnie J.
Jojjo
JoJo Chalmé
Jolene Cotnoir
Jon Riesenbach
jon sorce :)
Jon South
Jonathan deVries
Jonathan Gregoire
Jonathan Higgins
Jonathan Johnson
Jonathan Mintz
Jonathan Peel
Jonathan Pelling
Jonathan Stoler
Jonathan Tash
Jonathon Hosbrook
JonBoy Sharp
Jonghyeok "Creta" Park
Jonnie Irvine
Joon Yoon
jop
Jordan
Jordan Bullock
Jordan Gatbunton
Jordan Han
Jorge Villar Llopis
Josephine Baird
Josh Birnholz
Josh Delson
Josh Deprez
Josh Fairhurst
Josh Fishburn
Josh Grantham
Josh Lew
Josh More
Josh T.
Joshua "jehlers" Ehlers
Joshua Carmody
Joshua dos Santos
Joshua Fowler
Joshua Jacobs
Joshua Niday
Joshua Ols
Jota Diaz
jshap
Ju Li Khaw
Jubby Song
Jules HUVIG
Julia Rush
Julia Struthers-Jobin
Julian Harrelson
Julianna Brown
Julie Durand
Julie M
Julien
July J Jump
Juraba
just_deli
Justin Declair
Justin Holt
Justin Pattek
Justine Raymond
K.G. Orphanides
Kae Bartlett
Kaeru
Kai Clavier
KaimTime
Kaiyoki Munschky
kaldrenon
Kaliah Joseph
Kalina and Tim W.
Kalithorn
Kamani Arbus
KamiWasa
Kaora
KaosuDragon
Kara Buchanan
Karat McFall
Kardyla
Karen Middaugh
Karen Weiss
Karim "Baito" Mariette
Karin Liau
Karine Church
Kasran
Kasson J. Fody
Kat Baker
Kat Higgins
Katalin Laczina
Kate & Jason Brennan
Kate Kenneally
Kate Morics
Katelyn
Katherine Boutin
Katherine S
Kathryn Flucht
Katie Martin
Katie SnowMew Murphy
Katri Siitari
Katy McGilvray
Katy Tacik
Katy Williams
Kay Reilly
Kayla Kinnunen
Kaylee Malkowski
kbintheworld
KC Burkholder
KC Shadow
Keeley Saunders
Keenan Loughery :)
Keir Miron
Keith Hollenkamp
Keith Wier
Kellah
Kelli Wachter
Kelly Knox
Kelly Leigh Miller
Kelly Mazurowski
Kelly Robotoson
Kelly Starling
kelsey blizzard
Kelsey R. Marquart
Kendal Erickson (Rer)
Kenneth Khau
Kert Gartner
Ketchi San
Kevin
Kevin (K-man567)
Kevin Chen
Kevin Chen
Kevin Chow
Kevin Clark
Kevin Palardy
Kevin Tyner
Kevin Wu
Keyle Barnes
Khallysto
Khide Hoskins
Kien Phung
Kiersten Weinstein
Kiit Lock
Kiley Miller-Cohick
Kilian McMahon
Kilian Schmuth
Kilroy was here
Kimberli Jones
Kimberly Calderon
Kimberly Lippington
Kimberly Shpunder
KimboWeenie
Kimly Do
Kind Joe
Kira L
Kirsten Hahn
Kiss Xénia
kiwibasket
Klokwurk
KMikiiH
Kobe Kruse
Kodiak Sanders
Kota Yamami
Krista and Bryan
Kristal
Kristen Lynch
Kristin Naigus
Kristina Misch
Kristopher Gay
Krystal Kay
Krystal Linderman
Krystal VW Bergman
Krzysztof Bocer
KT
Kyle Davis
Kyle J Graves
Kyle Overby
kyle pulver
Kyle Reiter
Kyle Stanley
Kym Major
KytheraSystem
L zard
LadyLenalia
Lafta
lagpu1
Lai Ling Ling
Lambda + Caitlin
Lan Roed
Lana Zgombić
Lanaruru
Landry Nichols
Laura Nash
Laura Shay Boland
Lauren CD
Lauren F. Ignacio
Lauren M Crown
Lauren Moore
Laurent DS
Lavender Sheena Midnight
Lee Colunga
Lee Sang Hoon
Leetmeister
Leighann Renee Bosler
Leighton Hall (Yoshibrothers17)
Leila Rose
Lemon Bear
Lenasai
Lenya Nihil
Leo Henri
Leslie Harwood
Leslie L
Levi Sullivan
Liam Carter Berry
Liam the Great
Liam, Liv, Tash, Phil & Tracy Dean-Jones
Liane Thixton
Licania
Lilac Llama
Lilith White
Lily Logsdon
Lindsay Goto
Lindsay Jorgensen
Lindsey "ElegantFrost" Gallardo
Lindsey Morgan
Link
Lionel S.
Lior Sroka
Lisa Homstad
Lisa Houwers
Lisa Joy Black
Lisa Whittingham
LittleAnna
LixieLorn
Liz Lass
Liz Techert
Liza Fridman
LKdraws
LKW
Logan Smith
Loïc Perrigault
Loïc Van Doorn
Lord Nightmare
Loren + Jo
Lorenzo G
Lori Cole
Lorilyn Seyler
Lorxus
Louis EVRARD
Lu Nascimento
Luca Galante
Lucas Dussouchaud
Lucas Mitchum
Lucas Sodaro
LucasMaxBros
Luci Holland
Luciana Chion
Lucinda
LuinArk
Lukasz Czyżycki
Luke
Luke Beeman
Luke Bremner
Luke Stephenson
LuluMolloy
Lumi Mae
LuminaryEm
Luna
Lunarexxy
Lusztig Zsolt
Lyndsey Gallant
Lynn L.
Lynne
Lyra's Dad
Lytebringr
M. Joshua Cauller
Macaroon Raccoon
Maciej Deręgowski
Mack
Maddie Lindsey
Maddie McRoy
Maddie Walters
Maddy Thorson
Madeline Cauthon
MadHatterPlushies
Madi Schrenk
Madiso
Madison Harrell
Mae Dungan
Maggie Sherman
Maggie Z.
Maggielovesyou9
Maia Parker
Maisy Kay
Maja Engstrand
Makoto Koji
Malcolm MacDonald
MaliceToaster
Mallumet
Malumadue
mamatia
Mandy Bilger
Mandy Klaus
Mandy Tang
Mango
Mano Lon
ManokAdobo
MantaDeray
Marc Castells i Güell
Marcel Kapan (P1ka)
Marci Nehlsen
Marcia Odal
Marcie Tiraphatna
Marcin Kurpas
Marcos Negrete
Marcus "Nausicous" Clarke
Marcus Persson (Squid)
Maria "Aenyx" Minko
Marie Vermandé
Marie Zantner
Marie-Claude Rivest
Marinna Romero
Marion W.M.
Mark
Mark Brill
Mark Esparagoza
Mark Goddard
Mark Neugodov
Mark ritorto
Markus Malmo Lange
Markus Pointner
marlegan
Marley May Ranniger (Best Dog)
Marlon Wiebe
Marshall Tavares
Marta García Villar
Martin Boehme
Maru
MarvinNTA
Mary Cassin
Mary DuBoulay
Mary Gore
Mary Sperry
Mason Braunstein
Mathias Flagel
Mati Jensen
Matt Dickman
Matt Donatelli
Matt Edwards
Matt Griffith
Matt Isaac
Matt Palardy
Matthew "PlayOnSunday" James
Matthew Borowske
Matthew Corkins
Matthew Dacus
Matthew Dauber
Matthew Fiebelkorn
Matthew Glass
Matthew Jacobson
Matthew Knutsen
Matthew Laird
Matthew Meylikhov
Matthew Mitchell
Matthew Sawdon
Matthew Summerlin
Mauricio Andrés Aguilar Aguila Isaías
Max 'n' Chachi
Max / Mithzan
Max Stokols & Amy Lum
MaxConcannon
Maxime CORRE
Maxime Lebled
Maxwell "Thinginator"
Maxwell Allen
Maxwell Stevenson
May Oakes
Megan Cox
Mei
Mel Gallus
Melanie « silent genius » Massy
Melissa Hoy
Melissa Robertson
Mélissandre Samson
Melly
Melody Crevoiserat
Meloura
Memetic (Jesse)
Meness
Meredith Sims
MetaSwan
Mia Solveig Svendsen
Mia Wasell
Michael "Kind of a Big Deal" Petrucha
Michael “Newtellur” Baños
Michael “Opt” Gram
Michael and Vicky Twomey-Lee
Michael Brach
Michael Gonzales
Michael Hobbs
Michael K Lee
Michael Magram
Michael Matlock
Michael Miele
Michael Thies
Michael Wolfe
Michelle Lega
Michelle Moreno
MidoriMushrooms
Mika Hearn
Mikasa Ackermann
Mike "rentfn" Campbell
Mike and Anya Wood
Mike Boxleiter
Mike Brooks
Mike Carini
Mike Danylchuk
Mike Hayes
Mike Meyer
Mike Motoda
Mike Towndrow
Mikhail Vokabre Shcherbakov
Mikkel Schubert
Miles
Miles B. LaGree
Miles Ranisavljević
Miles Sorbet
Milky
Milkyaway
Milo Stelmack
Mimi Bennett
Mina Smith
Minji Choi
Minnie
Mintmane
Mira H
Mira Mechtley
Miracle Mosley
Miranda D House
Miranda Jacoby
MIRMIR
misabiko
Mishi Bear
Miss Cake <3
MissingLyx
MistaMishMash
Mitch Rohrer
mitkitty
Moby Muppert
Modi Operandus
Mohammed Taher
Mojma
Molly
Molly Guinan & Kevin Cottingham
mondaybear21
Monica Kung
Monika Roozegar
Monimena
Monono-Mono
Mooeena
Moon Jones
Moonbunny
Morgan Ditta
Morgan Fein
Morgan L'Fey
Morgan Mudway
Morgane Roussel
Morp
Mouse & Gibbs
Mr Kronus
Mr. Armstrong
Mr.ButtButt
Mr.RobQ
MrAndyTF
mrmicycle
Ms. Kitty Garcia
Mudkip
Murphy Pyan
Myahel
MYHC
Mylène "Konala" Lourdel
MyOhMyke
mysterywr
N2Drew
Nadiim ‘Dimo’ Nafei
naesone@gmail.com
Nagito Eevee
NaseongKim
Nashoute
Natalie
Natalie Pines
Natalie Salman
Nate Buck
Nateycakes
Nathan Cornelis
Nathan Frogman Albanese
Nathan Heisz
Nathan Khaw
Nathan Scott
Nathan Wilson
Nathaniel
Nathaniel Mooney
Nathaniel Weinstein
Nattsukana
naturaln0va
Navigator Riley
NeedlesD
Neil Bickford
Nemo Armistice Hana
NeonSaxon
Nerdie
Nerial
Nic Vasconcellos
Nicholas and Darwin
Nicholas Christopher Botticella
Nicholas Ettore
Nicholas Marinello
Nicholas Pels
Nicholas Sexton
Nick DeWitt
Nick Dyszel
Nick Freechack
Nick Goman
Nick Lamarre
Nick Lesniewski-Laas
Nick Schaedel
Nick Sylvalum
Nick Yonge
Nick Zuclich
nicky
Nico Kompass
Nico. "Elpatron972" G.
Nicola McBlane
Nicolas "Chacha" Chaffard
Nicolas Artman
Nicolas Huran
nicole aptekar
Nicole Hopkins
Nicole Keane
Nicole Valentine
nicomi
Nigel Deakin
Nigel Thurston
Nik Odic
Nikita Hetherington
Nikki Jeske
Niklas Bastian
Nikolas Barone
Nikolas Zihal
Nim Kuehne
Nissa Campbell
Nitzan Eltahan
Nix T
Nixitur
nnifVEVO
Noah
Noah (IcyGlaciers) Garrett
Noah deFer
Noah Seymour
Noel Berry
Nolan
Nolan C.
Nolan James
Norgg
Nosorożec Kaszle
NotNite
Nova Price-McGillivray
novu
NSzx
Nubia Whitaker
nuclearwhale
Null (just a bard!)
Oblio
Ofek Shoham
ogi
Ohad Kanne
Old Man Trouble
Oliver Baker
Olivia Huynh
Olivia McElvaney
Ollie Chamberlain
Olyn
Oni Victoria Garlicki
Orangetronic
Oscar C. Cronqvist
OtterSunbee
otteruw8ing4
Oudin Faustine
P J Bresnahan
P Miller
Paige Luther
Paige Riley
Painglue
Park Mi-hye
Parker Ensworth
Pate
Patricia Birrueta
Patricia R. Fox
Paul Collier
Paul Randall
Pavel Přibyl
PBK
pears
Peggy Griesinger
Penny Carmichael
perigou
Perrydotto
Person_in_the_MIRROR
Pete Asick
Peter Beblo
Peter Boström
Peter Freeman
Peter Gorman
Peter Lomax
Peter MacDougall
Peter R Valeri
Petwag
Phenomime
Phil Simmons
Philipp Lange
Philippe Vallotti
Phill Miller
Phillip A
Phoebe Babineau
Pickles4nickles
Pierre Le Page
Pierre Remy
Pierre-Étienne "Karlos" Marx
Piku
PinkPandaKatie
Piotr "ThePiachu" Piasecki
Pippin Stanish
Pixel Lich
Pixelpar
Pixie-JJ
piyoko
PlayfulBit
PObz
pomeyarou
Pompon
Popopopopolo
Popsicle Emperor
Possumcoffee
potatoTeto
Prens1327
PretzelPuma
Prince Faisal Ahmed
Prof. Berrier
Pterry Lee
Punny cat
PupLion
qolaan
Quentin Jackson
Quentin Kerguélen
Quinn and Wesley
Quirkyapple
Rachel "Nausicaa" Tougas
Rachel Bensette
Rachel H Sanders
Rachel Helps
Rachel Rocklin
Rachel Saliga
Rain Doggerel
Raltz Klamar
Ramiro Franco
Ranger Kier
Raphaëll Maïwen
Rasmodius
Raven
Raven
Rawb Herb
Ray Gibbs
Ray Soyama
Rebecca Howell
Red Lhota
rednoux
Rei Dunamis
Remmie
Remu "Frozenduck" P
Remy Jette
Rena
Renae Wittenkeller
Renan N. Neori
renata schild
Reolu Haller
Reuben Friesen
Reuben Horst
Reyna Fire
Rhandi Fisher
Rhete
Rich Hughes
Rich Siegel
Rich Welsh
Richard Hough
Richard Lim
Richard M.
Richard MacKay
Richelle 'Tikara' Chamberlin
Rick Desilets
Rickard Wredberg
Ricky Alvarado
Riki Ristanovich
Riley Goldstein
Ripley M
RisuRingo
Roanne M
Rob Dickson
Rob Kellett
Rob Lloyd
Rob McMillan
rob.avi
Robert Khoury
Robert V.
Robi W.F.
Robin Gonzales
RoboticGorgon
Rodent Liberty
Rodolfo M.
Rodrigo Losada
Rohan J Singh
Rokal
Rolf S. from Bocholt/Germany
Rollin Salsbery
Romain "Izuka" Barthomeuf
Ronald "Mr. Ronnio" Templeton
Roni Rudnizky
Rory Hutton
Rory Kurek
Rosalina Azurine
Rose "Gaming Mistress" Whitcomb
Rose Luna Hillock
RoseyHyena
Rosie Sinner
Ross Williams
Rowan Starling
Rowan Wilson
Roxie-kun
Roya Shahidi
Ruby Bright
Ruby Mage
Rue
Rui Fu
RukiaRiver
RunicGEAR
Ruoya Yan
Ruuubick
Ryan "Meats" B.
Ryan “McRealz” McCoy
Ryan C. Thompson
Ryan Clark
Ryan Dunnison
Ryan Ewing
Ryan H
Ryan H.
Ryan Jones
Ryan K. Allen
Ryan Kelley
Ryan Myers
Ryan Roth
Ryan Woodward
Rylai
Ryland Jones
RyNo
Ryukocha
Ryunos
Ryzz
S Everett Abbott
S.A. Hannon
S.O.!
Sabine Lehnertz
Sabrina Herman
Sabrina Scotti
Saffron Aurora
Sage Pirotess
SageOfMagic
Sahil Bajaj
SaltyPepperino
Sam “Leonhart” Bartrom
Sam Aisen
Sam and Kath
Sam Brown
Sam Loesch
Sam Meegan
Sam Pryor
Sam Smith
Sam T.
Samantha Overstreet
Samantha Shelton
Samrat Sinharoy
Samuel "Iron Curtain" Abram
Samuel Dixon
Samuel Kim
Samwise Manoucheri!
San Zos
Sanagi
Sangfuu
Sara Deter
Sara Fonseca
Sara Nasser
Sarah “RoseBlood-Wolf” Howard
Sarah and Colin Northway
Sarah C
Sarah Demoness
Sarah Hertzke
Sarah Hester
Sarah J Brown
Sarah Kingdred
Sarah Li
Sarah Moran
Sarah O
Sarah Proctor
Sarah Winters
Sarah Zedig
Sasam
Sasha
Sasha Pokhvalin
Satoto (HRT)
Saul Weiskopf
scar_duke
Scarizard
Schuyler Vonk
Scott Boegeman
Scott Christian
Scott Dockery
Scott Munro
Scott VanVossen
Sean and Anna Weatherbee
Sean Bell
Sean Daily
Sean Fineran @SFinerFACE
Sean Pelkey
Sean Rowley
Sean S. LeBlanc
Sebastian Wolff
Sébastien Delahaye
SeeDborg
Semy Sin
senae
SeriouSly
Serruchox7
Seth Huseyin
Seth MK
Sevv
Shado_Temple
Shae Guntle
Shammytank
Shan Campbell
Shane Adams
Shane Hoover
Shane Neville
Shaniya Stalnaker
Shannon Crock
Shannon O'Driscoll
Shanon Salka
Sharktoothman11
Shaun Kellett
Shauny7188
Shawn McLain
Sheradan Miller
Shilo Marie
Shinichiki
shinigami0.0
Shmangofett
Sho2010
Shoop
Shovan
shredberg
sidedishes
Simms Phoenix
Simon 'garkham' Landureau
Simon "Dragule" B.
Simon Chartrand
Simon Delavenne
Simon Gellis
Simon Larguier
Simon V. Weber
Sindre Naas
SinoSamba <(-'.'-)>
Siobhan Tate
Sisyphe
SJ Revell
Skeeby Bath
Sketchbored
Skexer
Skidas
Skydiver
Skye Nathaniel Schiefer
Skyla Moynihan
Skylark
Skyler Aure
snazzy
Soatok Dreamseeker
Socks
Sofi Alarcon
Solia
Sootstone
Sophie Cottle
Sophie Knowles
Sophie Osborn
Soshiki Hakase
sp4rklefish
Space Time Taco
Sparf
Sparkly McBagel
SpeedClaw
Spencer Guthro
Spencer Pruitt
Spencer Swan
Squabert Brown
Squidamus
Stacy E. Read
Stacy Hillstrom
Stacy Key
Stapecape
Stargirl
starwebs1
Stavros Polymenakos
Stefan Harp
Steffan Morgan
Steffi O
Stephan Reilly
Stephanie Lin
Stephanie Martone
Stephanie Morris
Stephanie Stoltenberg
Stephen "Medicshy" Bond
Stephen "StormRider" Clouse
Stephen Borden
Stephen Broughton and Max Staton
Stephen Carlson
Stephen Crawford
Stephen Dailey
Stephen Hammack
Stephen Knittel
Stephen Quinlan
Stephen Rose
Stephen Shiu
Stephen Staver
Steve Bartal
Steve Boyland
Steve Thibodeau
Steve Vancouver
Steve Wilder Blumenthal
Steven DeVito
Steven Keller
Steven M. Green
Steven Miclette
Steven Mondragon
Steven Rychetnik
Steven Stadnicki
Steven Walker
Steven! Ragnarök
Stormbriga
StormDaev
StrayCatalyst
Subsea
Suddenspark
Sue R
Sugar Joe
SugitaKurai
Sunlight Acolyte
Sunny Sattari
Susannah Jones
Suzene M Campos del Toro
SwordFirey
Syd Shuster
SylphiaFae
Sylvie
Synastrow
Synthy
SysL.Dev
Tai-Lun Tseng
tAkaMejen
takayuki
Tako
Takuma Kanai
Tal Kelrich
Tamara A
Tanimayto
Taq
Tara F
Tasha James
Tatsuya Kobayashi
Taylor
Taylor “Taylord” Chelliah
Taylor Hodgskiss
Taylor Muvrin
Taylor Sharrar
TC Loves Games
Team Cherry
Technetium
Tegan E
Terrablebot
Tessa Deane
Tessa Paulo
Thaddeus Gontarz
The Amatos
The Beardomancer
The Doty Boys
The Edditaur
The Fish and Pickle
The Greatest Story Ever Played Podcast
Thea May
TheBrianJ
TheDarkOmega
TheFig
TheLittleMuffin
TheNSCL
Theo Gerome
Theory Georgiou
TheReflexWonder
theskywitch
Thibaut
Thibaut Nicodème
Thinh Le
this_cat_is_creepy
Thomas BIDAUX
Thomas Nakagawa
Thomas Reisenegger
Thyme
Tianyi Wang
Tieg Zaharia
Tim
Tim 'Arvor' Schreck
Tim Brandl
Tim Garris
Tim Latshaw
Tim Schultz
Time Traveller
TimeglitchD
Timothy King
Tina Kyong Wagner
Tinkaknit
tinymakesthings
Tisza Gergő
TJ Martin
tlarn
Tobias Wrenn
todayThisJustin
Todd Ritchie
Togglejam
Tolcace
Tom Auxier
Tom Bennett
Tom Burdak
Tom Lum
Tom Shea
Tom Sherlock
Tom Stiefel
Tombo
Tommy Nelson
Tommy Parnelle
Tony Misgen
Toon418
Tori “ino” Roberts
Tori Schafer
Tori-Bird
Torie
Torvos
Trace Ashford
Trace McGraw
Trace Stilwell
Tractor Pradarengo
Trans Rights
Travace
Travis C Rentz
Travis Littlechilds
Travis Parker
Tray Ma
Treble Notes
TREBLIG
Trent
Trent O'Keefe
Trexenol
Trey Tackett
Tria Wintergarden
Tricia
Trudi Castle
True Blue Spark
Tukki
turbotifi
Tuyetthuc Nguyen
Tweekink
TwintailHellcat
twow443
Tyler “Yellow Gecko” Lapp
Tyler Adams
Tyler Palma!
Tyler Pomplon
Tyler Romeo
Tyler Sotaski
Tyler Stoker
ubuntor
UltraMag64
uma
Umar Ali
Undersoul
UnhappyWalrus
Ushelajyan
V G Murray
Vaer Cref
Valentin Chauvin
Valerie Pietrasz
valinthyne
Valise Conferme
Valou Colas
Vanacan
Vaughn Smith
vcte
Velmoor
Vendigroth
Vera Vartanian
Veronica Moreno and Eric Siegel
Veronica N
Vi for Tori
ViciousP85
Vicki Siolos
Victor Colombo
Victor Guerrero Corbi
Vidan
Vince Ashvey
Vincent and Megan Kuyatt
Vinson Luu
Viola Sandusky
Violet Procyon
Violet Viveiros
Violeta Loarca
Visual Novelty
Vivien Bernard
VixeyHime
Voluntes
Voya
Vuris Blackheart
Vy Cornett
vypxl
Vyvy
wakame_jp
Wander & Chelle
wefeelgroove
weirdwolf
Wendy
WerDei
Wes Davies
Whiskers
whitetexta
Whitney Payne
Wilfred Young
Will (DMacAttck12) Ranniger
Will Lienau
Will Standish
William Baines
William Garrett
William Wardlaw
William_the_Crafty1
Willis Ellis III
WillowShine
Willy Barro
Winter Snow
WintherMaw
Wintoli
WITS
Wolf Owczarek
wooferzfg
WorkingChef
wren
Wren D.M.
wrongskian
Xavier Ho
Xavier Maples
Xavier Rodríguez Planas
Xeyark
Xiaomeow
Xraybeeb
Xris Parsell
Yamard
Yari JZ
Yasin Karatas
YellowAfterlife
YemaYema
Yenyen
Yes
Yohancie Blas
Yonni
Youkool
Young-hoon Lee
Yponeko
Yu-Chen Lai
YukiMareanie
Yun Wei
Yusuf Kasim
Yvan Subbotin
Zac
Zac Lovoy
Zach Hall
Zach Howell
Zach Thelen
Zachary Bracken
Zachary Flaherty
Zachary Holdcroft
Zachary Waynor
Zack Wheat
Zaddum
Zaltys
Zane Corbiere
Zathanz
Zeke Holloman
Zicofool
Zid
Zinthings
Zirconyx
Zoë
Zoe "Hupfen" Landon
Zoe Saufler
Zoe Stille
Zoë Wolfe
Zorzamoth
Zylo
</poem>
== Special Thanks ==
<poem>
YoYoGames Ltd.
Gordon McGladdery
Maddy Thorson
Noel Berry
Kyle Pulver & Corey Nolan
Cole Pauls, Kirsten Hatfield & Goomba
The Staff of Aperture Coffee
The Staff of Slickity Jim's
All our moms, dads and siblings
</poem>
== Production Pets ==
<poem>
Bobbin
Chewie & Dobby
Dorito (unofficial)
Kiki
Momo the Worm
Moxxi & Widow
Ori
Oslo & Freya
Poptart & Steggy
Spunky
York
</poem>
----
This game was made on the unceded territories of the Squamish, Tsleil-Waututh, Musqueam, Duwamish, and Stillaguamish Nations. We acknowledge and thank them for caring for these lands and waters since before our time.
2ebe28f8b26d3842fc34eb23aa1fac19a62fdcb2